当前位置: 首页 > 面试题库 >

我需要一个Nodejs调度程序,该调度程序允许以不同的时间间隔执行任务

艾哲
2023-03-14
问题内容

我正在寻找一个节点作业计划,该计划将允许我以不同的时间间隔计划许多任务。例如,

  • 每30秒调用一次函数A
  • 每60秒调用一次功能B
  • 每7天调用一次函数C

我还希望能够启动和停止该过程。

到目前为止,我已经看过:

  • 稍后 -语法使我感到困惑,显然您也不能安排一个月以上的任务

  • 议程 -似乎是最有前途的,但是我对数据库功能感到困惑

  • 时间计划 -太简单了,无法启动和停止

我发现后者的语法令人困惑。


问题答案:

我会推荐node-cron。它允许使用Cron模式运行 任务,
例如

'* * * * * *' - runs every second
'*/5 * * * * *' - runs every 5 seconds
'10,20,30 * * * * *' - run at 10th, 20th and 30th second of every minute
'0 * * * * *' - runs every minute
'0 0 * * * *' - runs every hour (at 0 minutes and 0 seconds)

而且还有更 复杂的 时间表,例如

'00 30 11 * * 1-5' - Runs every weekday (Monday through Friday) at 11:30:00 AM. It does not run on Saturday or Sunday.

示例代码 :每10分钟运行一次作业:

var cron = require('cron');
var cronJob = cron.job("0 */10 * * * *", function(){
    // perform operation e.g. GET request http.get() etc.
    console.info('cron job completed');
}); 
cronJob.start();

您可以在node-cron Wiki中找到更多示例

有关cron配置的更多信息,请参见cron Wiki

我已经在许多项目中使用该库,并且可以完成工作。我希望这会有所帮助。



 类似资料:
  • 假设我有一个间隔,我给了它一个计算调度器。这样地: 那么,平面图{...}中发生的一切是否也会被调度在计算线程上? 在Observable.interval的源代码中,它说: 作为RxJava的初学者,我很难理解这个评论。我知道间隔计时器/等待逻辑发生在计算线程上。但是,关于要发出的项目的最后一部分是否也意味着发出的项目将在同一个线程上使用?还是需要观察?这样地: 如果我想在计算线程上处理emit

  • 我正在使用Quartz调度器,但我不知道如何并行运行作业。配置文件中有什么东西可以允许我这样做吗?

  • 我正在与石英时间表和一切工作完美根据要求。但有一件事我想实现,即我希望我的下一个作业执行将触发(currentFinishTime+intervalOfScheduler) 间隔为30秒的作业执行示例: 请帮助我解决我的问题。

  • 我正在做一个项目,我们计划使用WLP (WebSphere liberty)代替传统的WAS。 代码使用 WAS 调度程序来调度活动。 liberty 是否也具有与 WAS 中存在的相同级别的调度程序支持/功能? 如何将调度程序任务从webphere迁移到自由?

  • 例如,我想编写一个Java程序,在每天上午12点打印“Hello World”,如何使用Quartz调度器实现这一点? 这样地?我应该把打印“hello world”方法放在哪里?

  • 我有以下脚本,如果手动执行,它可以正常工作,但如果在任务计划程序中设置为任务,则不起作用,我怀疑这是一个未正确设置的参数,但我希望有人可以帮助我解决这个谜语 我强调了不工作的那一点,文件夹设置正确,但是java部分无法在任务调度器中执行,但是正如我所说的,手动是没问题的。谢谢你的时间