Kompira

Menu Menu

Enterprise Technical information

Kompiraジョブフローの基礎 ジョブフローから別のジョブフローを呼び出す

メールを送信する」では、指定のURLにリクエストを送り、その結果をメールで通知するジョブフローを作成しました。

 

 

ここではmailto()を何度も呼び出していますが、これを別のジョブフローに切り出して、共通部品化してみます。


 

環境情報

本稿は、以下の環境で検証しています。

 

項目 バージョン
OS CentOS Linux release 7.8.2003
Kompira ver.1.5.5.post7

 


 

以下のようなジョブフロー「メール送信」を作成します。

 

 

ここではmailto()の引数を、全てパラメータとして設定します。
このジョブフローを「メールでの通知」ジョブフローから呼び出すように、以下の様に書き換えられます。

 

 

呼び出すところを見てみますと、次のようになっています。

 

 

このように[ ]内にジョブフローを記載する事で、他のジョブフローを呼び出す事が出来ます。また[jobflow: パラメータ]として、呼ばれる側のパラメータを動的に指定する事が出来ます。パラメータが複数ある場合には上記のように”,(カンマ)”で区切って記載します。
呼ばれる側のジョブフロー(上記の場合は「メール送信」)でパラメータが定義されている順番で、呼ぶ側(上記の場合は「メールでの通知」)のパラメータを並べます。

では、呼ばれる側の差出人アドレス(“param_from”)はデフォルト値(“info@kompira.jp”)を使いたいような場合には、どのように呼び出したらいいでしょうか?
この場合には、呼ばれる側のパラメータ名を明示的に指定します。

 

 

パラメータ名を付加して呼び出す場合には、順番は前後しても構いません。

 

 

さて、ここで応答がなかった場合にWebサーバー関連のプロセス(httpd, mysqld)の起動状況を確認して、停止していた場合には再起動するジョブフロー「プロセス再起動」を作成して追加してみましょう。このジョブフローを呼び出す際には通知メールの送信先アドレス等を引数に取るものとします。

 

 

これを元の「メールでの通知」ジョブフローに追加すると、以下のようになります。

 

 

上記で見てきた通り、共通する機能や処理に関しては、独立したジョブフローを作成しておくことで、繰り返し処理であったり複数のジョブフローから呼び出す事が可能になります。また、呼び出す側は実行時の条件指定が出来るため、条件に応じた対応を行う事が可能となります。

今回の記事ではmailto()を同じ機能のジョブフローで置き換えるなど、極めて単純な例で説明をいたしましたが、もちろんまとまった大規模な処理を記述する事も可能です。

1つのジョブフローで処理をすべて書くことは可能ですが、可読性・保守性を高めるためには、適切にジョブフローを分割して管理することが重要です。

スタートガイド

Kompiraジョブフローの基礎

ジョブフローの簡単な例

Kompiraの機能

外部との連携