質問
HTTP RESTジョブにてスクリプトを実行しており、アクセス数の制御のため、実行されるスクリプトの同時実行数を設定したいと考えています。
HULFT Squareにて、スクリプト毎の同時実行数を設定することはできますか。
HULFT Squareにて、スクリプト毎の同時実行数を設定することはできますか。
回答
HULFT Squareにはスクリプト毎の同時実行数を制御する機能はありません。
なお、フラグファイルを利用することで、要件を満たすことが可能です。
■対応例
[概要]
現在の実行数を判断し、スクリプトの実行有無を判断します。
[詳細]
以下の処理を追加します。(同時実行数を n とします)
- 該当スクリプト実行時に特定ディレクトリに対して一意名のファイルを作成する。
- 特定ディレクトリのファイル数をチェックし、n 個以上であれば 1 秒待機する。
- ファイル数が n 個未満になるまで、2. の処理を繰り返す。
- n 個未満の場合、任意の処理を実行する。
- 処理終了時に 1. で作成した一意名のファイルを削除する。
[注意点]
同じタイミングで複数のスクリプトが4の処理を行った場合、n以上の数のスクリプトが実行される可能性があります。
■応用
フラグファイルの利用は、以下のケースでも有効です。
- ジョブで呼び出したスクリプトの多重起動を禁止したい場合は、n=1 として制御する。
- ある処理の終了を待ってから別の処理を開始したい場合は、フラグファイルの有無から判断する。
コメント
0件のコメント
記事コメントは受け付けていません。