1
私は毎日午前8時にvibe.dウェブアプリケーションでタスクを実行しようとしています。 現時点ではのパラメータをtrue
に設定してsetTimer
関数を使用しています。しかし、この方法では、タスクがトリガーされる時間を正確に制御することはできません。バイブでこれを行う簡単な方法はありますか?毎日午前8時に振動してタスクを実行する方法はありますか?
私は毎日午前8時にvibe.dウェブアプリケーションでタスクを実行しようとしています。 現時点ではのパラメータをtrue
に設定してsetTimer
関数を使用しています。しかし、この方法では、タスクがトリガーされる時間を正確に制御することはできません。バイブでこれを行う簡単な方法はありますか?毎日午前8時に振動してタスクを実行する方法はありますか?
ありがとうございました。それはまさに私がやったことです。私は次の午前8時までの時間を計算し、setTimerを呼び出します。
void startDailyTaskAtTime(TimeOfDay time, void delegate() task) {
// Get the current date and time
DateTime now = cast(DateTime)Clock.currTime();
// Get the next time occurrence
DateTime nextOcc = cast(DateTime)now;
if (now.timeOfDay >= time) {
nextOcc += dur!"days"(1);
}
nextOcc.timeOfDay = time;
// Get the duration before now and the next occurrence
Duration timeBeforeNextOcc = nextOcc - now;
void setDailyTask() {
// Run the task once
task();
// Run the task all subsequent days at the same time
setTimer(1.days, task, true);
}
setTimer(timeBeforeNextOcc, &setDailyTask);
}
次の午前8時までの時間を計算し、適切な期間で 'setTimer'を呼び出すことを妨げるものはありません。 – sigod