heroku上的node cron作业,是否需要使用heroku调度程序?

时间:2019-03-14 12:26:29

标签: node.js heroku cron

我正在将我的应用程序后端构建为要部署在Heroku上的node / express API。

我对实现“ cron作业”不熟悉,我发现了名为node-cron的npm库,它看起来非常简单。

就像在我的应用运行时代码中设置cron作业一样简单吗?我知道当heroku免费dyno进入“睡眠模式”(基于其他StackOverflow答案)时,它将不会运行,但是我计划在生产中使用付费dyno,所以这不是问题。

我主要担心的是,当我在heroku上“按比例放大”并运行多个dynos时,这会导致奇怪的交互吗?我的应用程序上每个“实例”在单独的dyno上是否会尝试独立运行自己的任务,从而导致工作重复?

我知道heroku为此提供了一个免费的“ scheduler”插件来启动dynos,但是如果以上情况不会发生,那么在我看来,调度程序heroku插件似乎就不需要了。

注意:我的cron会非常简单,只需要对旧记录进行一些数据库清理,我不想在数据库层中这样做以保持简单,因为在postgres中安排作业似乎并不容易。

任何见解将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

如上所述,根据我过去在相同情况下的经验,所有事情都是正确的。

  1. npm软件包node-cron仅在只有一个dyno的情况下才能正常工作 否则它将基于许多测功触发。
  2. 如果您想完美地执行cron而不冒任何风险(无论您拥有多少dyno),我建议您使用heroku附加组件。