AWS SWF安排活动

时间:2017-10-13 13:51:55

标签: java amazon-web-services scheduled-tasks amazon-swf

使用Java Flow Framework进行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));

[由于我们使用的是系统当前时间,因此不允许使用上述代码]

工作流程时钟的当前时间,返回工作流程的开始时间,这对我没用。

那么我如何安排特定时间的活动?

1 个答案:

答案 0 :(得分:0)

使用WorkflowClock。它返回正确的确定性当前时间,即决定重放的时间。

Here is the line of code将时钟更新为当前决策时间。