job chainのロックについて

143 views
Skip to first unread message

z_t.h...@iflag.co.jp

unread,
Aug 25, 2016, 7:35:04 AM8/25/16
to 日本JobSchedulerユーザーグループ(JJUG)

はじめまして。

SOS JobScheduler1.9を使用しています。
ロックについてご存じの方がいらっしゃいましたら教えて下さい。

ジョブ単体でロックを使うことは実現できていますが、ジョブチェーン単位でロックを使用することは可能でしょうか?

やりたいことは次の通りです。
① 「ジョブチェーンA」「ジョブチェーンB」にはジョブが複数登録しています。
② それぞれのジョブチェーンは別々のオーダーで起動をします。
③ 「オーダーA(ジョブチェーンA)」と「オーダーB(ジョブチェーンB)」が数秒置いて起動します。
④ 「オーダーA(ジョブチェーンA)」が始まるとロックされ「オーダーB(ジョブチェーンB)」は保留になります。
⑤ 「オーダーA(ジョブチェーンA)」がのジョブが全て終わると「オーダーB(ジョブチェーンB)」が動き始めます。

ジョブチェーンに1つのジョブを登録して、ジョブ単位での動きは実現できていますが、
複数のジョブ(ジョブチェーン)毎にロックが可能なのかよくわかりません。

ご存じの方がいらっしゃいましたら、ご教授いただければと思います。
よろしくお願いします。

Satoru Funai

unread,
Aug 26, 2016, 5:26:37 AM8/26/16
to z t hayase, 日本JobSchedulerユーザーグループ(JJUG)
hayaseさん
ロックはリソース(入力ファイル/出力ファイルなど)を排他制御することが目的なので、動いているオーダーを止めることはできません。
従ってジョブチェーン内で、ロック取得ジョブとロック解放ジョブを作って、ロックされていればセットバック設定でリトライし続けるような使い方になります。
参考:
https://blue21neo.blogspot.jp/p/blog-page_17.html
https://kb.sos-berlin.com/display/PKB/How+to+serialize+jobs+with+locks+before+parallel+execution
https://kb.sos-berlin.com/display/PKB/How+to+prevent+concurrent+access+to+resources+by+parallel+execution+of+orders+in+job+chains

動いているオーダーを止めたい理由によりますが、異なるジョブチェーンで依存関係を作る方法は、monitorやeventを使う方法もあります。
船井

----- 元のメッセージ -----
> 差出人: "z t hayase" <z_t.h...@iflag.co.jp>
> 宛先: "日本JobSchedulerユーザーグループ(JJUG)" <jobsche...@googlegroups.com>
> 送信済み: 2016年8月25日, 木曜日 午後 8:35:03
> 件名: job chainのロックについて

> --
> このメールは Google
> グループのグループ「日本JobSchedulerユーザーグループ(JJUG)」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには
> jobscheduler-...@googlegroups.com にメールを送信してください。
> このグループに投稿するには jobsche...@googlegroups.com にメールを送信してください。
> https://groups.google.com/group/jobscheduler-ja からこのグループにアクセスしてください。
> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。
>

z_t.h...@iflag.co.jp

unread,
Aug 26, 2016, 6:08:53 AM8/26/16
to 日本JobSchedulerユーザーグループ(JJUG), z_t.h...@iflag.co.jp
船井さん

ありがとうございます。早瀬です。

オーダーを止めるということではなく、
依存関係のある処理の塊(ジョブチェーン)毎に排他したいだけなのです。

私の方でも、試行錯誤しているうちにジョブチェーン単位のロックは不可能だと気が付き、
ジョブチェーンのファイルトリガーを選択してみました。
ジョブチェーンの最後にファイル作成するシェルを書いて、
次に動かしたいジョブチェーンのトリガーにそのファイルを指定して、ジョブチェーンの排他が可能になりました。

ただ、JobSchedulerの機能ではなく、シェルでファイルを作るのは気持ち悪いので、
船井さんの仰るeventが良いのかもと思っています。

monitorやeventについては、これから勉強してみます。




2016年8月26日金曜日 18時26分37秒 UTC+9 satoruf:

shinji shiroma

unread,
Aug 27, 2016, 8:20:54 PM8/27/16
to 日本JobSchedulerユーザーグループ(JJUG), z_t.h...@iflag.co.jp
はじめまして

ファイルトリガで試したのと同じことを、同期Job で実現できると思います。

以下のように同期Jobを追加します。

 ・ジョブチェーンA の最後にSyncジョブを追加
 ・ジョブチェーンB の先頭にSyncジョブを追加

これで、ジョブチェーンB は、ジョブチェーンAが終了するまで待機するはず


参考)


z_t.h...@iflag.co.jp

unread,
Aug 29, 2016, 11:51:00 PM8/29/16
to 日本JobSchedulerユーザーグループ(JJUG), z_t.h...@iflag.co.jp
shinji shiromaさん

ありがとうございます。早瀬です。

ご提示いただいたurlの通りに定義したらうまい具合にジョブの連携が可能となりました。

ついでにもう一つ、
ジョブチェーンAとジョブチェーンBが終わった後に、連携してジョブチェーンCを動かす事をしたいのですが、
どうもうまくいかないです。

もしよろしければご教授下さい。


2016年8月28日日曜日 9時20分54秒 UTC+9 shinji shiroma:

Satoru Funai

unread,
Aug 30, 2016, 6:53:12 AM8/30/16
to z t hayase, 日本JobSchedulerユーザーグループ(JJUG)
hayaseさん
城間さんのblogにあるNested JobChainの方法
https://blue21neo.blogspot.jp/p/centos6sos-jobscheduler-jobchain_75.html
と、オーダーをAPIで書き換える方法
https://kb.sos-berlin.com/display/PKB/How+to+call+nested+job+chains+programmatically
があります。

船井
----- 元のメッセージ -----
> 差出人: "z t hayase" <z_t.h...@iflag.co.jp>
> 宛先: "日本JobSchedulerユーザーグループ(JJUG)" <jobsche...@googlegroups.com>
> Cc: "z t hayase" <z_t.h...@iflag.co.jp>
> 送信済み: 2016年8月30日, 火曜日 午後 12:50:59
> 件名: Re: job chainのロックについて

shinji shiroma

unread,
Aug 31, 2016, 8:29:53 AM8/31/16
to 日本JobSchedulerユーザーグループ(JJUG), z_t.h...@iflag.co.jp


ついでにもう一つ、
ジョブチェーンAとジョブチェーンBが終わった後に、連携してジョブチェーンCを動かす事をしたいのですが、
どうもうまくいかないです。


同期ジョブでも実現できます。
同期ジョブの java_class を "com.sos.jitl.sync.JobSchedulerSynchronizeJobChainsJSAdapterClass" にしてみてください。

参考)

複数のJobChain 並列に実行し、複数の同期ポイントを設定する
 
サンプルコード


z_t.h...@iflag.co.jp

unread,
Sep 8, 2016, 10:08:16 PM9/8/16
to 日本JobSchedulerユーザーグループ(JJUG), z_t.h...@iflag.co.jp
船井さん
shinji shiromaさん

返事が遅くなって申し訳ありません。早瀬です。

色々と、試してみたいと思います。
わからない事がありましたら、またお尋ねしたいと思います。

ありがとうございました。


2016年8月31日水曜日 21時29分53秒 UTC+9 shinji shiroma:
Reply all
Reply to author
Forward
0 new messages