Node.jsパッケージ「cron」を使用して10分ごとにcronジョブを実行したいと思います。
このcronジョブには5〜15分かかりますが、1つのインスタンスがまだ実行されている場合は、別のインスタンスが並行して参加することになります。代わりに、追加の実行をスキップし、次の期間まで待機します。
このパッケージを使用して実装することは可能ですか?cronパッケージを使用した実装のコードは次のとおりです。
const CronJob = require("cron").CronJob;
const job = new CronJob(
'0 */10 * * * *',
()=>SomeCronJob(),
null,
true,
'America/Los_Angeles',
);
パッケージの代わりに単純なsetInterval()とclearInterval()の組み合わせを使用して実装することを考えましたが、方法はわかりません。
助けていただければ幸いです!
フラグを使用して、ジョブが実行されているかどうかを確認します。例:
let isJobRunning = false;
function SomeCronJob() {
if (isJobRunning) {
// Skip
return;
}
isJobRunning = true;
// run stuff
// Once is finished
isJobRunning = false;
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加