使用AWS Workflows:在执行函数之前等待承诺完成。

时间:2017-04-06 04:09:02

标签: java amazon-web-services asynchronous amazon-swf

我正在尝试熟悉AWS Workflows和Promises。 我有一个清单:

(int)Math.Round()

评估功能:

List<Promise<ClassA>> classA= someSet.stream()
                  .filter()
                  .map(/*Insert call activity*/)
                  .collect(Collectors.toList());

Promise<Void> waitForPromises = new AndPromise(
              doSomething(classA),
              .
              .Some other functions);

facts = /*do Some processing*/
Promise<ClassB<EnumA>> actions = ActivityB.evaluate(facts, waitForPromises);
performActions(actions, facts, classA);

现在如果我没有修改classA中的值,我可以将performActions的定义改为: evaluate(Facts facts, Promise<?>... waitFor) ;

但是现在我需要确保在调用performActions之前performActions(Promise<ClassB<EnumA>> actions, Facts facts, @Wait List<Promise<ClassA>> classA)由于在classA中执行的操作而具有更新的值。

1 个答案:

答案 0 :(得分:0)

这会有用吗?

List<Promise<ClassA>> classA= someSet.stream()
              .filter()
              .map(/*Insert call activity*/)
              .collect(Collectors.toList());

Promise<List<ClassA>> somethingP = doSomething(classA)
Promise<Void> waitForPromises = new AndPromise(
          somethingP,
          .
          .Some other functions);

facts = /*do Some processing*/
Promise<ClassB<EnumA>> actions = ActivityB.evaluate(facts, waitForPromises);

performActions(actions, facts, somethingP);

perfomActions的签名是:

performActions(Promise<ClassB<EnumA>> actions, Facts facts,
              Promise<List<ClassA>> somethingP);

编辑:更新了doSomething以返回Promise&lt; List&lt; ClassA&gt;&gt;