用于 node.js 的 Heroku 工作者

Posted

技术标签:

【中文标题】用于 node.js 的 Heroku 工作者【英文标题】:Heroku workers for node.js 【发布时间】:2015-02-08 01:02:51 【问题描述】:

我从 Heroku 开始,我有一个 web 应用程序,它的一部分需要每周运行一次(最好是星期一)。我一直在读一些关于工人的东西:here 和 here 和 here... 但我仍然有很多疑问:

1) 这个工人在没有严格控制的情况下在后台运行,不能安排每周运行一次。还是我错了?如果我错了,我该如何安排呢?

2) 要使它们正常工作,我究竟需要做什么?输入

 web:     node webApp.js
 worker:  node worker.js

在 Procfile 中(其中 worker.js 是程序的一部分,每周只需要运行一次)。仅此而已?没有其他的??太简单??

3) 最后一个……但也是最重要的。 “金钱的鳞状物质”......一个测功机与一个工人相同,所以如果你有一个为网络运行的测功机,你需要为工人购买另一个......不是吗?在价格清单上,额外的测功机成本为 34.5 美元(27.87 欧元)。不便宜...所以我想知道我是否正确,如果您想运行工人,是否需要购买测功机?

【问题讨论】:

【参考方案1】:

您可能会发现 Heroku Scheduler 插件 (https://devcenter.heroku.com/articles/scheduler) 是一个“足够好”的低成本选项。您需要按计划任务的运行小时数付费,因此如果您有一个只需要很短时间运行的常规作业,那么它的运行成本会比连续工作进程便宜得多。

它在调度方面不如其他选项灵活。它可以设置为每天或每小时在特定时间运行任务。因此,如果您只需要在星期一运行任务,那么您需要让调度程序每天运行,然后检查 worker.js 中的日期并在其他日期立即退出。

【讨论】:

以上是关于用于 node.js 的 Heroku 工作者的主要内容,如果未能解决你的问题,请参考以下文章

Node.js + Mongoose 可以在本地工作,但不能在 Heroku 上工作

Node.js 应用程序适用于工头,但不适用于 heroku。 404 错误

如何将 node.js 应用程序部署到 heroku?有没有可能?

Mongodb atlas + node.js 在本地工作,但在推送到 Heroku 时停止

Heroku 中的 Node.js 应用程序在 Foreman 上工作,但在部署时不工作?

node.js 项目在本地机器上工作,在 Heroku 上部署时出现问题