Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在节点应用程序中使用通用cron作业?_Cron_Node Cron - Fatal编程技术网

如何在节点应用程序中使用通用cron作业?

如何在节点应用程序中使用通用cron作业?,cron,node-cron,Cron,Node Cron,我有一个节点应用程序,我想在其中每天运行任务。因此,我想使用节点cron来安排任务,但不是这样: var cron = require('node-cron'); cron.schedule('* * * * *', function(){ console.log('running a task every minute'); }); 我需要一些通用的解决方案,以便在一个地方,我有一个从不同位置获取不同功能的cron作业的空主体。这意味着我们总共有两个文件,一个只有cron作业函数处理程

我有一个节点应用程序,我想在其中每天运行任务。因此,我想使用节点cron来安排任务,但不是这样:

var cron = require('node-cron');

cron.schedule('* * * * *', function(){
  console.log('running a task every minute');
});
我需要一些通用的解决方案,以便在一个地方,我有一个从不同位置获取不同功能的cron作业的空主体。这意味着我们总共有两个文件,一个只有cron作业函数处理程序,另一个有cron作业列表。从我们想要运行这些作业的地方,我们只需要一些基本的调用


有人能给我推荐这个解决方案吗?

我找到了解决方案。使用节点cron作业模块,我已经实现了我想要的。让我详细解释一下:-

首先,我创建了一个包含作业的新文件,将其命名为jobs.js:-

// jobs.js 

exports.first_job = {

    on:"* * * * * " //runs every minute
    },
    job: function () {
        console.log("first_job");
    },
    spawn: true             
}

exports.second_job = {

    on: "*/2 * * * * *",    //runs every 2 second 
    job: function () {
        console.log("second_job");
    },
    spawn: false            // If false, the job will not run in a separate process. 
}
在这里,我们定义了两个作业名称first_job和second_job。我们可以根据需要定义任意多个

最后,我们需要通过以下简单步骤从任何位置调用这些作业:-

// main.js 

var cronjob = require('node-cron-job');

cronjob.setJobsPath(__dirname + '/jobs.js');  // Absolute path to the jobs module. 

cronjob.startJob('first_job');  
cronjob.startJob('second_job');
我们可以在一次调用中调用所有作业,如下所示:-

cronjob.startAllJobs();