ロックファイルを作成したい
キーワード:同時実行,多重実行,排他制御,ロック
シナリオ一覧に戻る
概要
指定したディレクトリ内にロックファイルが存在しない場合、ロックファイルを作成します。
サンプルプロジェクトの説明
指定したディレクトリ内にロックファイルが存在するか確認し、存在しない場合はロックファイルを作成します。
存在する場合はend処理の
[戻り値]
に「1」を設定して処理を終了します。
本スクリプトは、逆引きリファレンス「
スクリプトを同時に実行した際、ロックを取得した処理のみ実行したい
」より呼び出されます。
処理の流れ
サンプルプロジェクトの処理の流れは以下の通りです。
「
ファイル/ディレクトリ存在確認処理
」でロックファイルが存在するかどうかを判定します。
「
条件分岐処理
」を行います。
ロックファイルが存在する場合、
[戻り値]
に「1」を設定して処理を終了します。
ロックファイルが存在しない場合、以下の処理を行います。
「
ファイル作成処理
」でロックファイルを作成します。
スクリプトを実行すると、「lock」というファイルが作成されます。
ポイントとなる機能
名前
説明
ツールパレット上の場所
end処理
スクリプトの終了を表し、戻り値を返します。
「基本」-「フロー」-「end」
処理のポイント
end処理に
[戻り値]
を設定し、呼び出し元に渡します。
ロックファイルが存在する場合は
[戻り値]
に「1」を設定し、存在しない場合は「0」を設定します。
サンプルプロジェクトの使用方法
上記処理を実装したサンプルプロジェクトを用意しています。サンプルプロジェクトを使用する場合の手順は、以下の通りです。
サンプルプロジェクトファイル名
rl_reference_008-010.zip
サンプルプロジェクトの展開
サンプルプロジェクトファイル「rl_reference_008-010.zip」を展開します。
プロジェクトのアップロード
「rl_reference_008-010.zip」を展開後に作成される「rl_reference_008-010プロジェクト」ディレクトリがプロジェクトファイルとなります。
DataSpider Studioを起動し、マイプロジェクトの画面から
[ファイル]
-
[ローカルからアップロード]
で展開したディレクトリ「rl_reference_008-010プロジェクト」をアップロードしてください。
本シナリオに該当するスクリプトは、「rl_reference_008-010プロジェクト」のスクリプト「rl_reference_009」です。
サンプルデータの準備
「rl_reference_008-010.zip」を展開後に作成される「samples」ディレクトリがサンプルデータとなります。
$DATASPIDER_HOME/server/samplesディレクトリに上書きしてください。
スクリプトの作成手順
プロセスフローは、「
サンプルプロジェクトの説明
」のスクリプト画像を参照して適宜設定してください。
デザイナのツールパレット「ファイル」-「ファイル操作」-「ファイル/ディレクトリ存在確認」から、ファイル/ディレクトリ存在確認処理をスクリプトキャンバスに配置します。
ファイル/ディレクトリ存在確認処理の設定は、以下のように行います。
[必須設定]タブ
デザイナのツールパレット「基本」-「フロー」-「条件分岐」から、条件分岐処理をスクリプトキャンバスに配置します。
条件の設定は、以下のように行います。
[必須設定]タブ
処理のポイント
ファイル/ディレクトリ存在確認処理のコンポーネント変数「exist」を判定し、条件分岐を行います。
コンポーネント変数「exist」は、指定したファイルまたはディレクトリが存在する場合には「true」、存在しない場合には「false」が格納されます。
デザイナのツールパレット「ファイル」-「ファイル操作」-「ファイル作成」から、ファイル作成処理をスクリプトキャンバスに配置します。
ファイル作成処理の設定は、以下のように行います。
[必須設定]タブ
条件分岐処理のアイコンを右クリックし、
[条件の追加]
を選択します。
条件の設定は、以下のように行います。
[必須設定]タブ
デザイナのツールパレット「基本」-「フロー」-「end」から、end処理をスクリプトキャンバスに配置します。
end処理の
[戻り値]
に「1」を設定します。
処理のポイント
end処理の
[戻り値]
に「1」を設定し、呼び出し元に渡します。
end処理の
[戻り値]
はプロパティインスペクタから設定してください。
スクリプトを実行し、正常終了すれば成功です。