0
使用Java Flow Framework for SWF。AWS SWF安排活動
任何方式在SWF的特定時間安排活動? 比方說,發送在2017年10月22日上午9:00運行「sendNotification」。
這些示例允許創建具有延遲的計時器,但不能在指定的時間內創建計時器。 儘管我可以根據當前時間戳和需要觸發事件的目標時間來計算延遲,但是如何在工作流程執行期間獲取當前時間,因爲如果您嘗試獲取當前系統時間在工作流決策者中,它會在工作流中創建non-determinism,並且失敗。
Date currentDate = new Date();
long sysTimeInSeconds = (currentDate.getTime()/1000);
System.out.println("System Time : " + sysTimeInSeconds);
Promise<Void> timer = clock.createTimer((timeStampInSeconds - sysTimeInSeconds));
工作流時鐘的當前時間,返回工作流,這是沒有用的我的的開始時間[由於我們使用從系統當前時刻以上的代碼是不允許的。
那麼我如何安排一個活動的特定時間?
嗨馬克西姆,我發現用克朗裝飾者裝飾的活動可能是安排活動的最佳方式。 但問題是,如果我使用這裏的示例中給出的東西[https://github.com/aws/aws-swf-flow-library/blob/master/src/samples/AwsFlowFramework/src/com/amazonaws /services/simpleworkflow/flow/examples/cron/CronWorkflowImpl.java]。然後在工作流決策程序中,如果我有許多其他活動,則由於重播行爲,調度程序活動將安排多次。有關如何確保此決策者的活動只安排一次的建議? –
重播行爲不應該導致調度活動超過一次。顯然如果發生這種情況,Decorator中會有一個錯誤。 –