一定時間以上実行しているスクリプトを検出したい

キーワード:CLI,外部アプリケーション起動,遅延,実行時間,処理時間
シナリオ一覧に戻る

概要

一定時間以上実行しているスクリプトを検出したい場合、CLIコマンド「ps」を使用します。

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

CLIコマンド「ps」を実行し、実行結果から実行中のスクリプトを確認します。
スクリプトからCLIコマンドを実行する方法については、「スクリプトからCLIコマンドを実行したい」を参照してください。
本スクリプトでは、「スクリプトからCLIコマンドを実行したい」で作成した「rl_reference_095プロジェクト」をサービス登録して使用します。

実行開始から30分以上経過しているスクリプトを抽出し、CSVファイルに出力します。

処理の流れ

サンプルプロジェクトの処理の流れは以下の通りです。
  1. スクリプト呼び出し処理」でCLIバッチを実行する処理を呼び出し、「ps」コマンドを実行します。
  2. CSVファイル読み取り処理」で実行結果を読み取ります。
  3. マッピング処理」でスクリプトの開始日時と現在日時を比較し、実行開始から30分以上経過しているスクリプトを抽出します。
  4. CSVファイル書き込み処理」で抽出されたスクリプトのリストをファイルに書き込みます。
  5. 条件分岐処理」で抽出結果を判定し、実行開始から30分以上経過しているスクリプトが1つ以上存在する場合、「例外通知処理」で処理を異常終了させます。
実行開始から30分以上経過しているスクリプトが存在した場合の実行結果について

ポイントとなる機能

名前 説明 ツールパレット上の場所
スクリプト呼び出し処理 プロジェクト内の他のスクリプトやサーバに登録されたスクリプトを呼び出します。 「基本」-「処理」-「スクリプト呼び出し」
マッピング処理 入力データを変換します。 「変換」-「基本」-「マッピング」

処理のポイント

実行したいCLIコマンドを「CLIコマンド設定ファイル」にあらかじめ記述しておくことで、スクリプトからCLIコマンドを実行できます。
CLIコマンド設定ファイルの詳細については、「CLIバッチについて」を参照してください。
本シナリオではCLIコマンド「ps」を実行します。
psコマンドの実行結果を読み取ることによって、一定時間以上、実行中のスクリプトがあるか確認できます。

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

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

サンプルプロジェクトファイル名 rl_reference_099.zip
  1. サンプルプロジェクトの展開
    サンプルプロジェクトファイル「rl_reference_099.zip」を展開します。

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

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

  4. CLIランチャの準備
    CLIランチャを用意します。
    スクリプトからCLIコマンドを実行したい」で作成した「rl_reference_095プロジェクト」を、サービス名「CLIランチャ」でサービス登録してください。

スクリプトの作成手順

プロセスフローおよびデータフローは、「サンプルプロジェクトの説明」のスクリプト画像を参照して適宜設定してください。
  1. デザイナのツールパレット「基本」-「処理」-「スクリプト呼び出し」から、スクリプト呼び出し処理をスクリプトキャンバスに配置します。

  2. デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取り処理をスクリプトキャンバスに配置します。

  3. デザイナのツールパレット「変換」-「基本」-「マッピング」から、マッピング処理をスクリプトキャンバスに配置します。

  4. デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル書き込み」から、CSVファイル書き込み処理をスクリプトキャンバスに配置します。

  5. マッピング処理のMapperエディタを開き、実行開始から30分以上経過しているスクリプトを抽出する処理を作成します。

  6. デザイナのツールパレット「基本」-「フロー」-「条件分岐」から、条件分岐処理をスクリプトキャンバスに配置します。

  7. デザイナのツールパレット「基本」-「処理」-「例外通知」から、例外通知処理をスクリプトキャンバスに配置します。

  8. スクリプトを実行し、以下の結果になれば成功です。