1

所以,我发现了一个关于这个的老问题(这里:How to stop a node cron job),但它对我不起作用(而且我不知道原因)。我正在使用 cron-job-manager (因为我计划同时使用多个预定作业)但据我所知它应该建立在 node-cron 上(但我是新手,所以.. .)

所以,我再次问:在某些条件下如何处理启动和停止 cron 作业?我实际上是为一个不和谐的机器人做这个:基本上,用户输入一个启动命令和一个停止命令。

第一次尝试是这样的:

job = cron('keyTask','* * * * * *', ()=>{
  //Do the actual job
  },
  {
  start: false, 
  timeZone:"Europe/London",
  });

switch args[1]
case go: 
  job.start();
  break;
case stop:
  job.stop();
  break;

当用户发出“go”命令时,这会成功启动作业,但是当它发出“stop”命令时,计划的作业不会停止。

第二次尝试是:

  var x = args [1];
  new cron('keyTask' , '* * * * * *', job(doTheThing(x)) ,
  {
  start: false, 
  timeZone:"Europe/London",
  });

其中 job() 是预先定义的包含实际工作的函数,而 DoTheThing() 是根据用户在输入中所说的内容给出真假的东西。这将执行一次计划的作业,然后停止。不知何故,我怀疑这里的问题与我在外部定义函数的事实有关,而在大多数示例中,我看到函数总是写在 cron() 中。所以,我没有想法:提前感谢您的帮助!

4

0 回答 0