使用 Nodejs 以编程方式将作业添加到 linux cron 列表

Add a job to linux cron list programmatically with Nodejs

我有一份 Nodejs 的工作,我想每 30 分钟用我的 Nodejs 程序扫描数据库并更新电子商务中的产品数据 API,请注意 Nodejs 程序正在为 REST 提供服务API(后端)用于反应 js web 应用程序 所以我搜索了一下,发现我可以像 "node-schedule" 这样使用 Nodejs Cron 库来做到这一点,但我知道使用 Linux Cron

会更有趣
 var j = schedule.scheduleJob('42 * * * *', function(){
   console.log('The answer to life, the universe, and everything!');
  }); 

是否有任何库可以让我使用 Nodejs 将 Cron 作业添加到 Linux 或者我只使用 "fs" 来完成?所以我将打开 cron 作业文件并添加我的命令?

作为 Vixie Cron 一部分的命令 crontab 允许您创建、编辑和删除每个用户的 cron 条目。

或者如果您 运行 作为 root 用户,您不应该 ,您可以将 cron 文件放入 /etc/cron.d

这并不总是受支持,如果您 运行 在 Docker 类型的容器环境中,则怀疑您是否有任何 cron。在那种环境中,您希望 运行 Nodejs 为您处理预定的作业。或者使用其他类型的分布式计划工作系统。

您可以将 cron 作业放入 nodejs 脚本。然后可以通过 cronbee 模块通过 API:

添加到 crontab
import { cronbee } from 'cronbee'
await cronbee.ensure({
    taskName: 'do smth',
    taskRun: `node my-script`,
    cron: '42 * * * *'
})

或者您可以通过 CLI 确保 cron 作业,如果该模块是全局安装的或来自 npm 脚本:

$ cronbee ensure mytasks.json