Talend ジョブの重複起動をTouchファイルで管理する
はじめに
例として5分に1回呼び出される想定のジョブをtalendで作成した場合に、5分で処理が終わらずジョブが実行された状態で再度ジョブを実行するとエラーになります。
そのため、現在ジョブが動作しているかを確認するためにTalendのtFileTouchコンポーネントを利用する例を備忘録として記載します。
touchコマンドとは
touchはLinuxのコマンドとして用意されています。
機能として
* ファイルのタイムスタンプ変更
* 存在しないファイル名を指定するとファイルを新規作成
があります。-tで指定のタイムスタンプに更新が可能でオプション指定がない場合は現在時刻に更新されます。
touch sample.bat -t 指定の時刻へ更新
TalandにはtFileTouchコンポーネントが用意されており機能としてファイルを作成することができるため、この機能を利用しジョブ起動中のみ既定のファイルが存在する処理をジョブに追加することで重複起動を管理します。
Touchファイル確認手順
- touchファイルがあるか確認する
- ファイルがなければ作成しジョブの処理を継続、あればジョブを停止
- touchファイル削除
各コンポーネントのファイル名に追加
ファイル名: "C:/talend/TOS_DI-Win32-20200219_1130-V7.3.1/workspace/job.touch"
tFileExist_1
((Boolean)globalMap.get("tFileExist_1_EXISTS")) == false
((Boolean)globalMap.get("tFileExist_1_EXISTS")) == true
tFileTouch_1
存在しない場合、ディレクトリを作成にチェック
tFileExist_2
((Boolean)globalMap.get("tFileExist_1_EXISTS")) == true
Author And Source
この問題について(Talend ジョブの重複起動をTouchファイルで管理する), 我々は、より多くの情報をここで見つけました https://qiita.com/seamcarving/items/43a021bf7fbfa494d00f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .