2016年10月26日水曜日

LogicFlow における開始日時指定と延長期限の違い

LogicApps や Flow では、処理の実行タイミングを制御する仕組みとして何種類かの方法があります。トリガに対して開始日時を設定する方法、延長期間(Delay)コネクタを利用する方法、延長期限(Delay-Until)コネクタを利用する方法がそれにあたりますが、それぞれに違いがあるのでまとめてみました。

まずはトリガに対して直接開始日時を設定する方法です。

image

繰り返し(Recurrence)コネクタではデザイナ上で指定できますが、そのほかのコネクタにおいても Code View 上で starttime の値を設定することで同様のことが行えます。

この場合は、設定した時刻になるまでトリガが呼び出されません。

image

延長系のコネクタを利用する場合は、デザイナ上で上記のように「いつまで待機するか」(Delay-Until)「どれだけ待機するか」(Delay)の設定を行うことができます。

これらの方法の違いは、トリガの呼び出しが発生するかどうか、になります。

最初の starttime を指定する方法では、設定日時になるまではトリガが呼び出されたことにはならず、請求対象となる実行は発生しません。

対して延長系のコネクタを利用する方法では、トリガが呼び出されそのあとにこれら延長系コネクタが実行されて待機状態になりますので、呼び出し自体はあくまでも指定した通りに発生します。ですので、請求対象となるトリガの実行は発生しますし、延長系コネクタより先になにがしかの処理を定義してあれば、そこまでのアクション実施数も請求対象となります。

image

上記は延長系コネクタを利用した場合の実行履歴ですが、延長コネクタにより実行を待機している状態のまま、次の LogicFlow が呼び出されているのがわかります。そしてあるタイミングを迎えると、一斉に処理が実行再開されることになります。

トリガの呼び出される有無もあるので、直接請求に関連する部分になりますが、同じ実行日時を指定するものであっても、利用シーンはかなり明確に分かれます。

starttime 指定では、LogicFlow 自体の実行を行わないので、x月y日からサービス開始、というタイプに用いるのがよさそうです。

反面、延長系コネクタを利用するシーンは、LogicFlow の処理を途中までは進めておきたい場合、に利用するのが適しているかもしれません(実際問題としてそういうケースがどれほどあるか、というのはありますが)

0 件のコメント:

コメントを投稿