0

ノード スケジュールを使用して、配列ベースのジョブ キューを作成しています。ただし、 node-scheduleは将来のジョブのみを実行することに気付きました。

これを証明するために、最小限の実行可能な例を作成しました。

const schedule = require('node-schedule');

function randomDate(start, end) {
  return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()));
}

let start = new Date()
let end = new Date()
start.setMinutes(start.setMinutes() - 35) // set job 35 Minutes in the past
end.setSeconds(end.setMinutes() - 10) // set job 10 Minutes in the past

/**
 * Create Scheduler
 */
let arr = []
const numb_jobs = 50
for (let i = 0; i < numb_jobs; i++) {
  d = randomDate(start, end)
  arr.push([i, d])

  schedule.scheduleJob(arr[i][1], function () {
    console.log('Job  -- #' + arr[i][0] + ' -- executed at: ' + arr[i][1]);
  });
}

スクリプトの実行時にキューの先頭で過去のすべてのジョブを実行する方法について何か提案はありますか?

返信ありがとうございます。

4

1 に答える 1