次のシナリオを作成しようとしています。
- タスクがユーザーに割り当てられて完了する
- マネージャーが必要に応じてユーザー タスクを再割り当てするためのタスクが作成されます (聞かないでください。彼らはこのようにしたかったのです)。
- タスクの期日が近づいたときにメール リマインダーを送信する必要がある
したがって、これには EventHandlingScope を使用することを考えました。
- eventhandlingscope アクティビティのメイン ブランチでタスクの変更をリッスンしています。
- イベント ドリブン ブランチで再割り当てタスクの変更をリッスンし、再割り当てタスクがアクティブ化された場合は、指定されたユーザーに最初のタスクを再割り当てします
- 別のイベント ドリブン ブランチでは、遅延アクティビティを使用し、ユーザーが割り当てたタスクが期限に近づいているかどうかを定期的に確認し、電子メール リマインダーを送信します。
そのため、私は eventhandlingscope がこれに適していると考えていましたが、DelayActivity の問題を除いて、ほとんどはそうです。
イベント ハンドラー ブランチの 1 つに遅延アクティビティを配置すると、一度だけ起動しますが、それ以上は起動しません。一方、onTaskChange アクティビティを配置すると、誰かがそのタスクを変更するたびに起動します。
それで、これは予想される動作ですか?DelayActivity がループしないのはなぜですか? どうすればこれを別の方法で行うことができますか? 私の考えはCAGですが、これはもう少し複雑に見えます...
更新: CAG の問題は、onChange イベントが発生した場合でも、遅延アクティビティが発生するまで全体がブロックされることです。これは理にかなっていますが、使用するのが少し難しくなります。
更新 2: できればわかりやすくするためにテキストを書き直しました