Tag: heroku

最小化Salesforce Streaming API和Heroku Connect之间的延迟

我目前有一个在Heroku中运行的应用程序(node.js),使用Heroku Connect连接到Salesforce来读取/写入数据。 Heroku Connect基本上有一个Salesforce选定数据的副本,通过Streaming API提取。 我的应用程序立即写入HC PostgreSQL数据库,立即写入Salesforce。 这增加了一个独特的参考字段,也是Salesforce中即时生成的,但是这个信息被延迟反馈给Heroku Connect。 我不确定延迟是因为streamAPI还是Heroku Connect,但我不确定如何最小化/删除这个延迟,以便Heroku Connect立即使用新生成的字段进行更新。 请看下面的图表,显示什么是即时和延迟发生的地方:

Heroku上的Node.js Express App不会使用Mongoose连接到MongoLab数据库

我试图让我的node.js快速应用程序连接到使用Mongoose的Heroku上的MongoLab数据库。 我已经使用app.configure在production中将我的数据库URI设置为我的MongoLab URI,正如您在Heroku日志中所看到的,它肯定dbURI设置为MongoLab URI。 我已经确定了我的NODE_ENV production 。 我的问题是什么? app.js : var express = require('express'); var mongoose = require('mongoose') , dbURI = 'localhost'; var app = express(); app.configure('production', function () { console.log("production!"); dbURI = 'mongodb://brad.ross.35:Brad1234@ds031347.mongolab.com:31347/heroku_app6861425'; console.log(dbURI); }); mongoose.connect(dbURI, 'test'); mongoose.connection.on('error', console.error.bind(console, 'connection error:')); var postSchema = new mongoose.Schema({ body: String }); var Post = mongoose.model('Post', postSchema); […]

heroku node.js bash:node:找不到命令

似乎有一个奇怪的问题,我的应用程序部署在香柏堆上的heroku,我的节点进程甚至没有被调用 我的Procfile如下所示: web: node web.js 和我的package.json文件: { "name": "fuuzik", "version": "0.0.1", "dependencies": { "express": "3.x", "jade":"*", "mime-magic":"*" }, "engines": { "node": "0.8.x", "npm": "1.1.x" } } 所以,当我提交并推送heroku检测到它是一个节点的应用程序罚款,并build立我的依赖正确,甚至说,它部署..但应用程序立即坠毁在部署和heroku日志返回: 2012-08-29T08:52:14+00:00 heroku[api]: Deploy d9fdb17 by he610@doc.ic.ac.uk 2012-08-29T08:52:14+00:00 heroku[web.1]: State changed from crashed to starting 2012-08-29T08:52:14+00:00 heroku[slugc]: Slug compilation finished 2012-08-29T08:52:16+00:00 heroku[web.1]: Starting process with command `node web.js` 2012-08-29T08:52:16+00:00 […]

如何在本地testing在Heroku中运行的node.js + mongodb应用程序?

我知道如何使用foreman在本地运行常规node.js应用程序,但是当我的应用程序链接到Heroku中的MongoHQ数据库时,连接是heroku环境的一部分。 有没有一种方法可以在本地机器上testing应用程序?

从Node.js / Heroku应用程序执行Java程序服务器端?

我可以从Heroku上的Node.js应用程序调用Java程序吗? 我有一个Node.js / Heroku应用程序。 但是现在需要添加服务器端function来在input数据文件上运行algorithm并将数据输出为JSON格式。 我已经有了一个可以读取文件并运行algorithm的Java库,对于我来说,用纯Node.js重写它会是非常困难的(最好)。 因此,可以编写一个命令行程序,它接受一个input文件并将结果输出到标准输出,例如 java mytask.class -cp ./mylibrary.jar –in /tmp/file.in > output.json 是否有可能从Node.js中调用Java命令行程序? 我知道可以将Java应用程序部署到Heroku,但是这里需要从Node.js应用程序执行一些Java。

caching快速响应

我有一些真正麻烦的快速caching响应…我有一个端点,得到了很多请求(大约5k rpm)。 这个端点从mongodb中获取数据,并加快速度我想caching完整的json响应1秒,这样每秒只有第一个请求到达数据库,而其他请求则来自caching。 当抽象出问题的数据库部分时,我的解决scheme看起来像这样。 我在redis中检查caching的响应。 如果发现我服了它。 如果没有,我生成它,发送它并设置caching。 超时模拟了数据库操作。 app.get('/cachedTimeout', function(req,res,next) { redis.get(req.originalUrl, function(err, value) { if (err) return next(err); if (value) { res.set('Content-Type', 'text/plain'); res.send(value.toString()); } else { setTimeout(function() { res.send('OK'); redis.set(req.originalUrl, 'OK'); redis.expire(req.originalUrl, 1); }, 100); } }); }); 问题是这不仅会使第一个请求每秒都打到数据库。 相反,在我们有时间设置caching(100毫秒之前)之前,所有请求都会到达数据库。 当真实的负载增加到这个时候,真正的响应时间大约是60秒,因为很多请求都落后了。 我知道这可以用像varnish反向代理解决,但目前我们正在主持heroku这复杂这样的设置。 我想要做的是在express中做一些反向代理caching。 我想这样做,以便在初始请求(生成caching)之后进入的所有请求将等待caching生成完成,然后再使用相同的响应。 这可能吗?

用nodeJS在Heroku上dynamic创build子域名?

是否有可能dynamic地添加子域名到指向你的英雄应用程序的自定义域? 例如,您正在创build一个允许用户创build自己的页面的应用程序。 假设www.example.com指向您的heroku应用程序,并且名为John的用户创build了一个页面,并且您的应用程序创build了具有johns内容的john.example.com 。 对于节点,你可以通过快速路由吗?

将Heroku App连接到Atlas MongoDB Cloud服务

为了解决这个问题:是否需要在Heroku上获得SSL支持才能使用SSLbuild立Heroku与Atlas MongoDB Cloud之间的连接? (TSL / SSL连接是访问Atlas MongoDB云服务的要求 )。 我正在尝试将使用node.js编写的Heroku应用程序连接到Atlas MongoDB Cloud托pipe的集群。 我当前的数据库是在mLab(作为Heroku插件)托pipe的,用于通过mongoose访问集群的MongoDB URI是(使用xxx来省略保密信息): MONGODB_URI="mongodb://xxx:xxx@xxx-a0.mlab.com:23266,xxx-a1.mlab.com:xxx/xxx?replicaSet=rs-xxx" 现在我已经将数据从mLab迁移到Atlas MongoDB Cloud,我正在使用URI访问集群: MONGODB_URI="mongodb://xxx:xxx@cluster0-shard-xxx.mongodb.net:xxx,cluster0-shard-xxx.mongodb.net:xxx,cluster0-shard-xxx.mongodb.net:xxx/xxx?replicaSet=xxx&ssl=true&authSource=admin" 当我的机器在本地运行我的Heroku应用程序时,我可以访问数据库没有问题。 我也可以使用mongo shell连接到群集。 但是,在Heroku中运行App时,无法build立连接。 在浏览器JS控制台,我得到503服务不可用消息。 在heroku中,我得到错误: no primary found in replica set 我知道Atlas MongoDB Cloud需要SSL连接,与mLab不同。 在我的本地机器上,我想使用自签名证书来成功连接到群集。 我的问题是:我是否需要在Heroku中获得SSL支持才能访问build立Heroku和MongoDB Atlas之间的安全连接? 或者Heroku中的SSL suport只需要客户端/ Heroku安全连接?

在Heroku部署之间保持less量状态的好方法是什么?

我有一个在Heroku上运行的小型Node.js应用程序,目前不需要或者有任何持久的状态存储。 但是,我想添加一个function,要求在部署之间保留一些非常小的状态(小于1KB的数据)。 什么是最好的方式来添加这个状态到我的Heroku应用程序,而仍然保留这个应用程序的能力很容易部署与“部署到Heroku”button? 到目前为止,我所看到的唯一可能的解决scheme将涉及附加一个免费的PostgreSQL插件,这似乎是大规模的矫枉过正。

如何在Heroku的Node.js应用程序中从子文件夹redirect到静态JavaScript应用程序?

我已经在React中构build了一个静态JavaScript应用程序,并将其部署到了firebase,并且位于example.firebaseapp.com 。 我也有一个Node应用程序,在www.example.com上提供我的主应用程序,并在Heroku上托pipe。 我试图弄清楚的是,如何访问给定的子文件夹,例如www.example.com/app时,如何让用户访问我的静态JavaScript应用程序? 另外,有没有办法做到这一点,我不必处理CORS的问题,因为他们将基本上住在同一个域名?