我正在将我的应用程序后端构建为要部署在Heroku上的node / express API。
我对实现“ cron作业”不熟悉,我发现了名为node-cron的npm库,它看起来非常简单。
就像在我的应用运行时代码中设置cron作业一样简单吗?我知道当heroku免费dyno进入“睡眠模式”(基于其他StackOverflow答案)时,它将不会运行,但是我计划在生产中使用付费dyno,所以这不是问题。
我主要担心的是,当我在heroku上“按比例放大”并运行多个dynos时,这会导致奇怪的交互吗?我的应用程序上每个“实例”在单独的dyno上是否会尝试独立运行自己的任务,从而导致工作重复?
我知道heroku为此提供了一个免费的“ scheduler”插件来启动dynos,但是如果以上情况不会发生,那么在我看来,调度程序heroku插件似乎就不需要了。
注意:我的cron会非常简单,只需要对旧记录进行一些数据库清理,我不想在数据库层中这样做以保持简单,因为在postgres中安排作业似乎并不容易。
任何见解将不胜感激。谢谢。
答案 0 :(得分:1)
如上所述,根据我过去在相同情况下的经验,所有事情都是正确的。
node-cron
仅在只有一个dyno的情况下才能正常工作
否则它将基于许多测功触发。