如何在节点应用程序中使用通用 cron 作业?
How to use Generic cron jobs in node application?
我有一个节点应用程序,我希望每天在其中执行 运行 任务。所以我想使用node-cron来安排任务但不是这样的:
var cron = require('node-cron');
cron.schedule('* * * * *', function(){
console.log('running a task every minute');
});
我需要一些通用的解决方案,以便在一个地方我只有空的 cron 作业主体,它从不同的位置获取不同的功能。这意味着我们总共有两个文件,一个只有 cron 作业函数处理程序,另一个有一个 cron 作业列表。从我们想要的地方 运行 这些我们只需要需要的工作和一些基本的调用。
任何人都可以建议我这个解决方案吗?
我得到了我的解决方案。使用 node-cron-job 模块我已经实现了我想要的。让我详细解释一下:-
首先我创建了包含作业的新文件,我们将其命名为 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();
我有一个节点应用程序,我希望每天在其中执行 运行 任务。所以我想使用node-cron来安排任务但不是这样的:
var cron = require('node-cron');
cron.schedule('* * * * *', function(){
console.log('running a task every minute');
});
我需要一些通用的解决方案,以便在一个地方我只有空的 cron 作业主体,它从不同的位置获取不同的功能。这意味着我们总共有两个文件,一个只有 cron 作业函数处理程序,另一个有一个 cron 作业列表。从我们想要的地方 运行 这些我们只需要需要的工作和一些基本的调用。
任何人都可以建议我这个解决方案吗?
我得到了我的解决方案。使用 node-cron-job 模块我已经实现了我想要的。让我详细解释一下:-
首先我创建了包含作业的新文件,我们将其命名为 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();