node.js - Heroku Node 因任务巨大而超时

标签 node.js heroku

我们的 Node 应用程序变得非常大,一项工作需要相当长的时间才能执行。我们使用 cronjob 运行此作业,但通过调用 URL。现在 Heroku 遇到了问题,因为这项工作需要 30 多秒才能完成。因此,我们收到一个超时,之后它会再次尝试立即执行它,直到我们的内存配额约为 300% 并且应用程序崩溃。

现在我想解决这个问题。在本地,我们运行这个脚本根本没有任何问题。大约需要一分钟(目前,但将来如果我们有更多用户,可能需要更多时间)完成,并且内存保持稳定。

现在在后台运行此脚本应该可以根据 https://devcenter.heroku.com/articles/request-timeout#debugging-request-timeouts 解决问题

在这里 https://devcenter.heroku.com/articles/asynchronous-web-worker-model-using-rabbitmq-in-node#getting-started我读到过有关 jack 兔的文章。但它似乎用于像 RabbitMQ https://github.com/hunterloftis/jackrabbit 这样的系统

所以我的问题:有人有 Node 后台任务的经验吗?我可以并且应该使用 JackRabbit 来执行后台任务吗?或者有更好的解决方案吗?我的后台任务只包含一个非常复杂的 ExpressJS 任务,需要一些时间来执行......

最佳答案

我是 Heroku 的 Node.js 平台所有者(实际上我写了您引用的 Web Worker 文章)。

您的用例听起来可能非常适合调度程序:

它是 cron 类型作业的绝佳替代品。

关于node.js - Heroku Node 因任务巨大而超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28483147/

相关文章:

javascript - 使用 mongoose 4.11.0 进行分组查询

javascript - Node.js 中的 "SyntaxError: Unexpected token )"

ruby-on-rails - Heroku 排队时间

ruby-on-rails - 防止子域上的 SSL

javascript - res.write 无法正常工作。它显示包含 HTML 标签的输出

javascript - 即使在获取响应后页面仍会继续加载

ruby-on-rails - rails : Encoder error when converting video using FFMPEG on Heroku

postgresql - Heroku - 将单个表转储并加载到共享的 postgres 数据库

mysql - rpc 操作中对 mysql 的 socketstream 异步调用

javascript - 在 application.js 中使用嵌入式 ruby