1.5.2 定期実行の仕組み
サービスのスケジュール種別に定期実行を指定した場合,サービスを実行した時点で1つ目のタスクが生成されます。1つ目のタスクは,開始予定日時になると実行され,そのタイミングで2つ目のタスクが生成されます。その後も設定したスケジュール(周期・時刻)に合わせて実行および次のタスクの生成が繰り返されます。
タスクの生成から実行開始までのタスクの状態は,待機中となります。
ただし,開始予定日時になっても前のタスクが完了していない場合,処理が延期になることがあります。スケジュールを毎週月曜日の9:00に設定した場合の定期実行の例を,次に説明します。
ユーザーによるサービスの実行(水曜日の12:00)
スケジュール種別として定期実行を指定し,毎週月曜日の9:00に処理が実行されるようにスケジュールを設定してサービスを実行します。この操作に伴い,1つ目のタスクが生成されます。
1回目の定期実行(1週目の月曜日の9:00)
設定したスケジュール(開始予定日時)に合わせて1つ目のタスクが実行され,2つ目のタスクが生成されます。
2回目の定期実行(2週目の月曜日の9:00)
設定したスケジュール(周期・時刻)に合わせて2つ目のタスクが実行され,3つ目のタスクが生成されます。
3回目の定期実行(3週目の月曜日の9:00)
2つ目のタスクが次の開始予定日時になっても完了していない場合,2つ目のタスクが完了してから3つ目のタスクが実行され,4つ目のタスクが生成されます。
4回目の定期実行(5週目の月曜日の9:00)
4つ目のタスクが生成された時点以降の日時で,設定したスケジュール(周期・時刻)に合わせて4つ目のタスクが実行され,5つ目のタスクが生成されます。
以降,同様にタスクの実行と生成が繰り返されます。
なお,サービスの実行後にスケジュールは変更できません。スケジュールを変更したい場合は,生成済みのタスクを実行停止し,新しい定期実行のスケジュールを設定してサービスを実行し直します。