質問
HULFT Squareには色々な種類のジョブという機能が存在します。
HULFT Squareでは様々なトリガーによってジョブを起動することができます。
今回は「ファイルイベントジョブ」と「スケジュールジョブ」に焦点を当て、各々の機能とファイルの時間監視についてご紹介いたします。
回答
【目次】
【1】ファイルイベントジョブとは
【2】スケジュールジョブとは
【3】「スケジュールジョブ」と「ファイル/ディレクトリ存在確認」コネクタの連携
【4】時間監視の設定方法
【1】ファイルイベントジョブとは
ファイルイベントジョブは、対象ファイルを常時監視することによって、監視対象ファイルの新規作成・更新・削除を
トリガーとして任意のスクリプトを実行するジョブ機能です。
■ファイルイベントジョブ発火のタイミング
1. ファイルの新規作成時
監視対象ファイルが新規に作成された場合に発火します。
2. ファイルのタイムスタンプ更新時
監視対象ファイルが上書き・更新された場合に発火します。
3. ファイルの削除時
監視対象ファイルが削除された場合に発火します。
【2】スケジュールジョブとは
スケジュールジョブは、指定したスケジュール単位でスクリプトを実行するジョブ機能です。
指定できるスケジュール単位は下記の通りです。
秒単位:任意の秒間隔でスクリプトを実行します。
分単位:任意の分間隔でスクリプトを実行します。
時単位:任意の一時間間隔でスクリプトを実行します。
日単位:毎日決まった時刻にスクリプトを実行します。
週単位:毎週決まった曜日の決まった時刻にスクリプトを実行します。
月単位:毎月決まった日時にスクリプトを実行します。
年単位:毎年決まった月日の決まった時刻にスクリプトを実行します。
【3】「スケジュールジョブ」と「ファイル/ディレクトリ存在確認」コネクタの連携
任意の時間のみファイル監視を行おうとした場合、ファイルイベントジョブでは監視対象のファイルを『常時監視』するため実現できません。
また、スケジュールジョブは特定の日時によるスクリプト実行をする機能を持っていますが、ファイルを監視することはできません。
それでは、HULFT Squareで時間によるファイル監視は出来ないのでしょうか…。
そこで登場するのが[ファイル/ディレクトリ存在確認]コネクタです。
このコネクタでは、ファイルまたはディレクトリが存在するかどうかを判定することができます。
例えば、このコネクタを利用し、ファイルの存在有無で条件分岐させる処理フローを組んだスクリプトをスケジュールジョブで実行させるのです。
つまり、本来スケジュールジョブが持っていなかったファイル監視の機能をこのコネクタで補う事により、『時間によるファイル監視』が可能となります。
では実際にスケジュールジョブと[ファイル/ディレクトリ存在確認]コネクタを使用した時間監視の設定方法の一例をご紹介いたします。
【4】時間監視の設定方法
要件として、毎日「9:00」にファイル監視を行うと仮定します。
1. 監視用スクリプトの作成
まず、ファイル監視用のスクリプトを作成します。
- ツールパレットより[ファイル/ディレクトリ存在確認]コネクタを配置し、監視対象ファイルのパスを設定します。
- [ファイル/ディレクトリ存在確認]アダプタのコンポーネント変数「exist」を使用して処理を振り分ける為、[条件分岐]コネクタを配置し条件を設定します。
※コンポーネント変数「exist」とは
指定したファイルまたはディレクトリが存在する場合には「true」、存在しない場合には「false」が格納されます。
- 条件分岐後の処理は任意の処理を作成してください。
今回は監視対象ファイルが存在していた場合に、[マッピング]アダプタで現在日時を取得し、監視対象ファイルに書き込む処理を作成しています。
2. スケジュールジョブの作成
続いて、先ほど作成した監視用スクリプトを実行するスケジュールジョブを作成します。
・ジョブを起動する任意のワークスペースとプロファイルを選択します。
・ジョブを起動するスケジュール単位と任意の時刻と開始日、終了日を設定します。
・使用するカレンダーと休日オプションを設定します(事前に使用するカレンダーを設定しておきます)。
・ファイル監視用のスクリプトを設定します。
・スクリプト実行のためのサービスを設定して登録すれば完了です。
以上の設定で毎日「9:00」のにファイル監視を行う要件を満たした実装が実現出来ました。
このように単体の機能だけでみると実現不可能に思える実装も、複数の機能を連携することによって実現可能です。
HULFT Squareには数多くのコネクタや機能が提供されていますので、色々と試してみてはいかがでしょうか。
コメント
0件のコメント
記事コメントは受け付けていません。