由于巨大的任务,Heroku 节点超时

Heroku node timeout because of enormous task

我们的节点应用程序变得非常大,一个作业需要相当长的时间来执行。我们运行这个作业用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 I read about JackRabbit. But it seems like it's used for systems like RabbitMQ https://github.com/hunterloftis/jackrabbit

所以我的问题是:谁有在 node 中使用后台任务的经验?我可以而且应该使用 JackRabbit 来完成我的后台任务,还是有更好的解决方案?我的后台任务只包含一个非常复杂的 ExpressJS 任务,它需要一些时间来执行所以....

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

您的用例听起来很适合调度程序:

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