TDDBC仙台09/課題_3 - History
!TDDBC仙台09課題:スケジューラー
'''スケジューラー'''とは、ジョブ(コマンドやシェルスクリプトなど)を定期的に実行するためのアプリケーションです。
スケジューラーは、'''スケジューラー設定'''を元にジョブを決まった時刻に実行します。
本課題では '''スケジューラー設定''' をテーマとします。
!!課題1 実行時刻の設定
'''時刻''' ('''時'''、'''分'''、'''秒''')を与えて、'''スケジューラー設定オブジェクト'''を作成し、その'''文字列表現'''を取得できるようにしましょう。
* (例) スケジューラー設定の時、分、秒 にそれぞれ '''18'''、'''9'''、'''32''' を与えると、その文字列表現は文字列 "'''32 9 18'''" となります。
* 例外的な入力(負の値、数値以外 など)を考慮する必要はありません。
* うるう秒の考慮は必要はありません。
!!課題2 実行時刻の判断
課題1で作成したスケジューラー設定オブジェクトを元に、スケジューラーが特定の時刻にジョブを実行するかを判断できるようにしましょう。
具体的には、作成されたスケジューラー設定オブジェクトに特定の時刻を与えて、時刻が一致するかを判断してください。
//* (例) スケジューラー設定 "'''32 9 18'''" において、スケージューラーはジョブを 18時9分32秒 に'''実行します'''。
//* (例) スケジューラー設定 "'''32 9 18'''" において、スケージューラーはジョブを 8時7分15秒 に'''実行しません'''。
* (例) スケジューラー設定 "'''32 9 18'''" において、実行時刻は18時9分32秒と'''一致します'''。
* (例) スケジューラー設定 "'''32 9 18'''" において、実行時刻は8時7分15秒と'''一致しません'''。
!!課題3 実行時刻の拡張
課題2までは、特定の時刻(1日1回)しかジョブを実行できませんでした。
この課題では、1日に複数回ジョブを実行できるようにスケジューラー設定を拡張します。
具体的には、時、分、秒、それぞれに '''毎時'''、'''毎分'''、'''毎秒''' を設定できるように拡張してください。
毎時、毎分、毎秒を設定した箇所の文字列表現は '''*'''(アスタリスク) となります。
* (例) スケジューラー設定の時、分、秒 にそれぞれ '''毎時'''、'''9'''、'''32''' を与えると、その文字列表現は文字列 "'''32 9 *'''" となります。
//* (例) スケジューラー設定 "'''32 9 *'''" において、スケージューラーはジョブを「0時9分32秒」「1時9分32秒」...「23時9分32秒」に実行します。
* (例) スケジューラー設定 "'''32 9 *'''" において、実行時刻は「0時9分32秒」「1時9分32秒」...「23時9分32秒」のいずれかと一致します。
'''スケジューラー'''とは、ジョブ(コマンドやシェルスクリプトなど)を定期的に実行するためのアプリケーションです。
スケジューラーは、'''スケジューラー設定'''を元にジョブを決まった時刻に実行します。
本課題では '''スケジューラー設定''' をテーマとします。
!!課題1 実行時刻の設定
'''時刻''' ('''時'''、'''分'''、'''秒''')を与えて、'''スケジューラー設定オブジェクト'''を作成し、その'''文字列表現'''を取得できるようにしましょう。
* (例) スケジューラー設定の時、分、秒 にそれぞれ '''18'''、'''9'''、'''32''' を与えると、その文字列表現は文字列 "'''32 9 18'''" となります。
* 例外的な入力(負の値、数値以外 など)を考慮する必要はありません。
* うるう秒の考慮は必要はありません。
!!課題2 実行時刻の判断
課題1で作成したスケジューラー設定オブジェクトを元に、スケジューラーが特定の時刻にジョブを実行するかを判断できるようにしましょう。
具体的には、作成されたスケジューラー設定オブジェクトに特定の時刻を与えて、時刻が一致するかを判断してください。
//* (例) スケジューラー設定 "'''32 9 18'''" において、スケージューラーはジョブを 18時9分32秒 に'''実行します'''。
//* (例) スケジューラー設定 "'''32 9 18'''" において、スケージューラーはジョブを 8時7分15秒 に'''実行しません'''。
* (例) スケジューラー設定 "'''32 9 18'''" において、実行時刻は18時9分32秒と'''一致します'''。
* (例) スケジューラー設定 "'''32 9 18'''" において、実行時刻は8時7分15秒と'''一致しません'''。
!!課題3 実行時刻の拡張
課題2までは、特定の時刻(1日1回)しかジョブを実行できませんでした。
この課題では、1日に複数回ジョブを実行できるようにスケジューラー設定を拡張します。
具体的には、時、分、秒、それぞれに '''毎時'''、'''毎分'''、'''毎秒''' を設定できるように拡張してください。
毎時、毎分、毎秒を設定した箇所の文字列表現は '''*'''(アスタリスク) となります。
* (例) スケジューラー設定の時、分、秒 にそれぞれ '''毎時'''、'''9'''、'''32''' を与えると、その文字列表現は文字列 "'''32 9 *'''" となります。
//* (例) スケジューラー設定 "'''32 9 *'''" において、スケージューラーはジョブを「0時9分32秒」「1時9分32秒」...「23時9分32秒」に実行します。
* (例) スケジューラー設定 "'''32 9 *'''" において、実行時刻は「0時9分32秒」「1時9分32秒」...「23時9分32秒」のいずれかと一致します。
Keyword(s):
References: