SOS JobSchedulerでジョブチェーンの実行時間を指定する

昨日はJobSchedulerでジョブチェーンを作成して実行するまでを説明しました。
ただ、実行時間をJOC(JobScheduler Operation Centre)で指定したので、繰り返しでの実行が出来ませんでした。繰り返しで実行するには、JOE(JobScheduler Object Editor)でオーダーを作成して指定します。

ジョブチェーンを実行するにはオーダーが必要です。オーダーでは、実行するジョブチェーン、実行する時間、実行時に引き渡すパラメータの3つの値を指定します。ジョブチェーンとオーダーの関係は、オープンソースのジョブ管理システム「SOS JobScheduler」を理解するためのポイントでも説明しているので、参照ください。

オーダーを作成する

オーダーを作成するには、JOEのJob Chain Ordersをツリーから選択し、New Orderボタンをクリックします。

Order ID: 任意の値を指定します(英字を含んでも構いません)。指定しなければ連番が採番されます。
Job Chain: 実行したいジョブチェーンを選択します。

Orderを作成すると、ツリーの子ノードとしてRun Timeが現れます。(Parameterを選択すると、そのオーダーで指定するパラメータを設定できます。)
ここで実行したい時間を指定します。画面では、毎日4時に実行するように指定しています。

ここまで設定したら保存して、WebブラウザでJOCを見てみましょう。Orderタブで、次の4時にジョブチェーンが実行されるように表示されていますね。

SOS JobSchedulerで指定できる実行時間の種類

JobSchedulerでは多彩な実行時間の指定が出来るようになっています。

Run Once: Run TimeでRun OnceオプションをONにすると、1回のみ実行するように指定できます。
Every Day: 毎日何時から何時までの間に何分(何秒も可)おきに実行するかが指定できます。
「何分おき」の数え方は、下記の3つの方法から選択します。
Single Start: これは何分おきではなく、毎日何時何分を指定します。
Interval end/start: 前の実行の終了から何分後を指定します。
Interval start/start: 前の実行の開始から何分後を指定します。
any Weekday: 曜日を指定できます。その曜日で実行する時間/間隔は、Every Dayと同様です。(以下同)
Days is a Month: 各月何日を指定できます。
Ultimo: 各月の最終日から数えて何日目を指定できます。
Special Days of Week: 何週目の何曜日を指定できます。
Special Days: 特定の年月日を指定できます。
Special Months: 特定の月を指定した上で、Every Day〜Special Days of Weekを指定できます。

また、Non Working Daysで、休日(Holiday)とする年月日や曜日を指定できます。
休日が指定された年月日や曜日にどのような動作をするかは、Every Dayなどで時間/間隔と一緒にWhen Holidayの項目で設定できます。

※括弧内に、毎週水曜日の4時に実行すると指定し、休日として2013/1/16(水)を指定した場合、次回の実行がいつになるかを記述します。今日は1/14(月)とします。

previous non holiday: 直前の休日以外の日に実行します。 (1/15 4:00 今週水曜日の前日)
next non holiday: 直後の休日以外の日に実行します。 (1/17 4:00 今週水曜日の翌日)
suppress execution: 休日として指定された日をスキップします。 (1/23 4:00 翌週の水曜日)
ignore holiday: 休日の指定を無視して、その日に実行します。 (1/16 4:00 今週水曜日の当日)

この記事を書いた人

井上 研一

株式会社ビビンコ代表取締役、ITエンジニア/経済産業省推進資格ITコーディネータ。AI・IoTに強いITコーディネータとして活動。2018年、株式会社ビビンコを北九州市に創業。IoTソリューションの開発・導入や、画像認識モデルを活用したアプリの開発などを行っている。近著に「使ってわかった AWSのAI」、「ワトソンで体感する人工知能」。日本全国でセミナー・研修講師としての登壇も多数。