nodejsアプリで定期的にいくつかのタスクを実行する必要があります。それが一定期間だった場合、それは正常に動作しています。しかし、私の場合、期間は動的に変化するはずです。以下は、期待どおりに機能しなかった私のコードです。ここでcronjobは、期間を変更したときに期間を更新していません。
var period = 1;
var CronJob = require('cron').CronJob;
new CronJob('*/' + period + ' * * * * *', function () {
console.log("some task");
}, null, true, "Indian/Mauritius");
new CronJob('*/5 * * * * *', function () {
period = period * 2;
console.log("updating cronjob period");
}, null, true, "Indian/Mauritius");
ここでは、両方が実行される2つのCronJobを作成しています。期間を「変更」するには、最初に最初のCronjobを停止してから、新しいCronjobを作成する必要があります。
例(テストされていないコード)
var job;
var period = 1;
var CronJob = require('cron').CronJob;
function createCron(job, newPeriod) {
if (job) {
job.stop();
}
job = new CronJob('*/' + newPeriod + ' * * * * *', function () {
console.log("some task");
}, null, true, "Indian/Mauritius");
}
createCron(job, 1);
setTimeout(function() {
period = period * 2;
createCron(job, period);
}, 60000);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加