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