ロックファイルを作成したい

Avatar
dstn

ロックファイルを作成したい

キーワード:同時実行,多重実行,排他制御,ロック

概要

指定したディレクトリ内にロックファイルが存在しない場合、ロックファイルを作成します。

サンプルプロジェクトの説明

指定したディレクトリ内にロックファイルが存在するか確認し、存在しない場合はロックファイルを作成します。
存在する場合はend処理の [戻り値]に「1」を設定して処理を終了します。
本スクリプトは、逆引きリファレンス「 スクリプトを同時に実行した際、ロックを取得した処理のみ実行したい」より呼び出されます。

処理の流れ

サンプルプロジェクトの処理の流れは以下の通りです。
  1. ファイル/ディレクトリ存在確認処理」でロックファイルが存在するかどうかを判定します。
  2. 条件分岐処理」を行います。
    ロックファイルが存在する場合、[戻り値]に「1」を設定して処理を終了します。
    ロックファイルが存在しない場合、以下の処理を行います。
  3. ファイル作成処理」でロックファイルを作成します。
スクリプトを実行すると、「lock」というファイルが作成されます。

ポイントとなる機能

名前 説明 ツールパレット上の場所
end処理 スクリプトの終了を表し、戻り値を返します。 「基本」-「フロー」-「end」

処理のポイント

end処理に [戻り値]を設定し、呼び出し元に渡します。
ロックファイルが存在する場合は [戻り値]に「1」を設定し、存在しない場合は「0」を設定します。

サンプルプロジェクトの使用方法

上記処理を実装したサンプルプロジェクトを用意しています。サンプルプロジェクトを使用する場合の手順は、以下の通りです。

サンプルプロジェクトのダウンロード 逆引きリファレンス シナリオ008-010のサンプルプロジェクト
  1. サンプルプロジェクトの展開
    サンプルプロジェクトファイル「rl_reference_008-010.zip」を展開します。

  2. プロジェクトのアップロード
    「rl_reference_008-010.zip」を展開後に作成される「rl_reference_008-010プロジェクト」ディレクトリがプロジェクトファイルとなります。
    DataSpider Studioを起動し、マイプロジェクトの画面から[ファイル]-[ローカルからアップロード]で展開したディレクトリ「rl_reference_008-010プロジェクト」をアップロードしてください。
    本シナリオに該当するスクリプトは、「rl_reference_008-010プロジェクト」のスクリプト「rl_reference_009」です。

  3. サンプルデータの準備
    「rl_reference_008-010.zip」を展開後に作成される「samples」ディレクトリがサンプルデータとなります。
    $DATASPIDER_HOME/server/samplesディレクトリに上書きしてください。

スクリプトの作成手順

プロセスフローは、「 サンプルプロジェクトの説明」のスクリプト画像を参照して適宜設定してください。
  1. デザイナのツールパレット「ファイル」-「ファイル操作」-「ファイル/ディレクトリ存在確認」から、ファイル/ディレクトリ存在確認処理をスクリプトキャンバスに配置します。
    • ファイル/ディレクトリ存在確認処理の設定は、以下のように行います。

      [必須設定]タブ


  2. デザイナのツールパレット「基本」-「フロー」-「条件分岐」から、条件分岐処理をスクリプトキャンバスに配置します。
    • 条件の設定は、以下のように行います。

      [必須設定]タブ



      処理のポイント
      • ファイル/ディレクトリ存在確認処理のコンポーネント変数「exist」を判定し、条件分岐を行います。
        コンポーネント変数「exist」は、指定したファイルまたはディレクトリが存在する場合には「true」、存在しない場合には「false」が格納されます。

  3. デザイナのツールパレット「ファイル」-「ファイル操作」-「ファイル作成」から、ファイル作成処理をスクリプトキャンバスに配置します。
    • ファイル作成処理の設定は、以下のように行います。

      [必須設定]タブ


  4. 条件分岐処理のアイコンを右クリックし、[条件の追加]を選択します。
    • 条件の設定は、以下のように行います。

      [必須設定]タブ


  5. デザイナのツールパレット「基本」-「フロー」-「end」から、end処理をスクリプトキャンバスに配置します。
    end処理の[戻り値]に「1」を設定します。

    処理のポイント
    • end処理の[戻り値]に「1」を設定し、呼び出し元に渡します。
    • end処理の[戻り値]はプロパティインスペクタから設定してください。

  6. スクリプトを実行し、正常終了すれば成功です。

コメント

ログインしてコメントを残してください。

Powered by Zendesk