質問
定時実行しているスクリプトがいくつかあり、これらの処理が一定数以上が成功している場合に日次処理を実行させたいのですが、どのように定時実行したスクリプトの成否を管理すればよいでしょうか。
回答
実装の一例として、定時処理のスクリプト内で、処理が成功した場合にフラグファイルを作成することで成否の管理が可能です。
- フラグファイル管理用のフォルダをストレージに作成します
- 定時で実行するスクリプトの最後に、上記フォルダへ任意のファイルを作成する処理(CSVファイル書き込みなど)を配置します
- 日次処理で実行するスクリプトの先頭にて、1のフォルダ内にあるファイル数をカウントし、所定の数に達しているかをチェックする処理を追加します
所定の数に達している場合は日次処理を続行し、そうでない場合には例外通知をするよう分岐させることで、定時処理の成功数に応じて日次処理の実行可否をコントロールすることが可能です
ファイル数のカウント作業には、[ファイルシステム読み取り処理]のコンポーネント変数「count」、または[ファイル名一覧取得処理]のコンポーネント変数「filecount」などがご利用いただけます。
補足
スクリプトの失敗要因としては処理失敗のほかに、ご利用のIntegrateサービスが高負荷によってダウンするなどの要因で、スクリプトの実行自体に失敗しているパターンも存在します。
「処理の失敗」と「実行の失敗」をそれぞれ判別したい場合、処理が失敗した場合にも別のフラグファイルを作成する処理を追加いただくことで、
- 成功のフラグファイルがあれば、処理に成功している
- 失敗のフラグファイルがあれば、実行はできているが処理に失敗している
- どちらもない場合、そもそもスクリプトが実行できていない
というように判別することも可能です。
なおこの際、成功フラグと失敗フラグが混同してしまうと、ファイル数のカウントに影響しうる点にはご留意ください。
コメント
0件のコメント
記事コメントは受け付けていません。