是否存在用于 node.js 的作业调度程序库?

有没有类似于 cron 的库可以让我安排一些函数在特定的时间运行(例如15:30,而不是从现在开始的 x 小时等等) ?如果没有这种类型的库,应该如何实现呢?我是不是应该把回调设置为每秒调用一次,然后检查时间并按照时间安排开始作业?

108480 次浏览

Node-cron 正如我所描述的那样

Node-crontab 允许您从 node.js 编辑系统 cron 作业。使用此库将允许您在主进程终止后仍然运行程序。免责声明: 我是开发商。

Protocol 是一个针对节点的轻量级作业调度,这将对您有所帮助。

我正在使用 kue: https://github.com/learnboost/kue。它是相当不错的。

官方特征和我的评论:

  1. 延迟的工作。
    • 如果希望让作业在特定时间运行,请计算该时间与现在之间的毫秒。调用 job.late (毫秒)(文档显示分钟,这是错误的)在初始化作业时,不要忘记添加“ jobs.Progress () ;”。
  2. 工作事件和进度。
    • 我不明白。
  3. 丰富的集成用户界面。
    • 非常有用。您可以在集成 UI 中检查作业状态(完成、运行、延迟) ,不需要编写任何代码。并且可以在 UI 中删除旧记录。
  4. 无限滚动
    • 有时候不行,得刷新一下。
  5. 用户界面进度指示
    • 对耗时的工作有好处。
  6. 特定作业日志记录
    • 因为它们是延迟的作业,所以您应该在作业中记录有用的信息,然后通过 UI 进行检查。
  7. 由雷迪斯供电
    • 非常有用。当您重新启动 node.js 应用程序时,所有的作业记录仍然存在,并且计划的作业也将执行!
  8. 可选重试
    • 不错嘛。
  9. 全文搜索功能
    • 很好。
  10. RESTful JSON API
    • 听起来不错,但我从没用过。

编辑:

  1. Kue 不像 Library 那样是个老古董。
  2. 默认情况下,kue 不支持重复运行的作业(例如每周日)。

这并不适用于所有人,但是如果您的应用程序已经设置为通过套接字接受命令,那么您可以使用 netcat 通过 cron 发出命令。

echo 'mycommand' | nc -U /tmp/myapp.sock

Js 是一个相当不错的 JavaScript“调度器”库,可以在 Node.js 或 Web 浏览器上运行。

你可以使用 一个 href = “ https://www.npmjs.com/package/timexe”rel = “ nofollow norefrer”> timexe

它使用简单,重量轻,没有依赖关系,比 cron 语法有所改进,以毫秒为单位的分辨率,并且可以在浏览器中工作。

安装:

npm install timexe

用途:

var timexe = require('timexe');
var res = timexe("* * * 15 30", function(){ console.log("It's now 3:30 pm"); });

(我是作者)

我是 Node-runnr的作者。它有一个非常简单的方法来创造就业机会。声明时间和间隔也非常容易和清楚。 例如,要在每10分20秒执行一次作业,

Runnr.addIntervalJob('10:20', function(){...}, 'myjob')

每天上午10点和下午3点做一份工作,

Runnr.addDailyJob(['10:0:0', '15:0:0'], function(){...}, 'myjob')

就这么简单。 更多详细信息: < a href = “ https://github.com/saquib764/node-runnr”rel = “ nofollow”> https://github.com/saquib764/node-runnr

所有这些答案都指向了最流行的 NPM 软件包.cron

Https://www.npmjs.com/package/cron

我们可以使用 节点调度节点调度Node-cron来实现基于 cron 的调度程序。

注意 : 为了生成 cron 表达式,可以使用这个 < a href = “ http://www.cronmaker.com/”rel = “ nofollow”> cron _ maker