我计划在 Heroku 上托管一个快速应用程序(我已经在尝试使用单个测功机)。
我想使用node-cron进行维护任务(做一些 MongoDB 更新)。问题是,确保维护只运行一次的最简单方法是什么?所有测功机都会尝试同时进行维护。
我目前的方法使用 MongoDB 的原子 upserts 作为某种信号量(每个 dyno 都试图为当前维护设置标志)。但这有点难看。
我不想有一个单独的工作实例,因为它实际上只是一个需要每天运行一次的简单任务。
我认为这就是 Heroku Scheduler 的优点(https://devcenter.heroku.com/articles/scheduler)。如果更新的执行不会花费太长时间,那么这就是要走的路。您编写一个知道如何更新 MongoDB 的 JS 脚本(例如 schedule.js),将其放在您的根目录中,并使用 Heroku 调度程序(它带有一个简单的前端)对其进行调度,以便node scheduler.js
在需要的时间调用它( )。