2013-12-11 50 views
2

我有一套我認爲非常適合AWS SWF的業務流程。在定時器最佳實踐之後的vs決策期間AWS SWF信號?

其中幾個過程包括等待期,可能是一週到3個月的任何事情。一個(簡短的,沒有完全解釋)的例子可能與「如果用戶註冊一個特定的服務,如果他們仍然在4個月後訂閱,向他們發送某種形式的獎勵」。

我在尋找建模過程的註冊過程,然後爲4個月的等待期設置一個計時器。

問題存在的事實,如果用戶取消有4個月的時間內,他們的訂閱,我們不想送獎勵。

我可以看到這樣做的兩種方法:取消時會有一個「取消」信號(這會停止「睡眠」工作流程),或者在「發送獎勵」步驟之前有一個「支票訂閱」工作流程「醒來」之後)。 (很顯然,我也可以兩者都做,一個「帶牙套&」的方法)

是否有任何這裏推薦的最佳做法?有爲了有數萬這些不同的業務流程,可以主動或在任何一個時間睡覺的潛力。

回答

1

我會用這兩種方法。通過信號或RequestCancelWorkflowExecution取消工作流程並在調用「發送獎勵」活動之前檢查訂閱有效性(使用單獨的活動)。實施後一種方法更簡單,但您最終需要支付技術上取消的優秀工作流程。 SWF當然可以處理數以萬計的開放式工作流程而沒有問題。