あなたが将来の日付を持っている場合は、以下のように、今日かseconds
の偶数からdays
の数にこれを変換しagenda
cronジョブ
function findDaysDifference (date1, date2) {
//Get 1 day in milliseconds
var oneDay_ms = 1000 * 60 * 60 * 24;
// Convert both dates to milliseconds
var date1_ms = date1.getTime();
var date2_ms = date2.getTime();
// Calculate the difference in milliseconds
var difference_ms = date2_ms - date1_ms;
// Convert back to days and return
return Math.round(difference_ms/oneDay_ms);
}
var futureDate = new Date(2018, 0, 1);
var daysFromNow = findDaysDifference(new Date(), futureDate);
console.log(daysFromNow);
と同じように使用することができます次に、agenda
ジョブを作成し、上記で計算したdaysFromNow
とスケジュールしてください。
あなたが将来的に特定の時間にそれをスケジュールする場合は、次にagenda
ジョブを作成し、上記の計算secsFromNow
、
でそれをスケジュール
function findSecondsDifference (date1, date2) {
var oneSecond_ms = 1000;
// Convert both dates to milliseconds
var date1_ms = date1.getTime();
var date2_ms = date2.getTime();
// Calculate the difference in milliseconds
var difference_ms = date2_ms - date1_ms;
// Convert back to days and return
return Math.round(difference_ms/oneSecond_ms);
}
var futureDate = new Date(2018, 0, 1, 16);
var secsFromNow = findSecondsDifference(new Date(), futureDate);
console.log(secsFromNow);
、以下のように秒を計算することができます
agenda.define('sayHello', function(job) {
console.log("Hello!");
});
// Schedule a job to run once at a given time
agenda.schedule(secsFromNow + ' seconds', 'sayHello');
デフォルトでは、ジョブはその日の午前12時に実行されますか? – digit
あなたのコードは私のために働いています。しかし、アジェンダに午後4時に2018年1月1日に仕事を実行するように指示するにはどうすればよいですか。あなたはアイデアを持っている? – digit
はい、特定の時刻に実行したい場合は 'futureDate'で時刻を設定し、' var oneDay_ms = 60 * 24'のようにその日の分を計算し、 'agenda.schedule(daysFromNow + 'minutes'、 ' sayHello '); ' – Aruna