SWF - 将输入参数发送到工作流程

时间:2015-11-08 07:07:16

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

我有一个SWF工作流决策程序,我需要传递一组值。我已经有一个类(POJO),它具有所有这些作为实例变量。所以我应该将POJO作为输入参数传递或传递单个字段。

@Workflow
@@WorkflowRegistrationOptions(....)
public interface WorkerClass {

   @Execute(version = "1.0")
   void generate(String a, int b, List<String> c, String d);
}

or
  void generate(POJO pojo);

POJO是

class POJO {
    private String a;
    private int b; 
    private List<String> c;
    private String d;
    //Getter and setters
}

哪个最好?

P.S:我需要从SWF控制台运行它

1 个答案:

答案 0 :(得分:0)

作为一般设计模式,我更喜欢将POJO传递给初始化,因为向其添加字段是向后兼容的。 AWS Flow Framework支持这两种方法。默认情况下,它使用JsonDataConverter来序列化函数参数。您可以随时编写自己的工作流输入字符串字段解析到POJO结构(并在@Workflow注释中指定它),或者以JSON转换器期望的方式指定参数。了解默认格式的最简单方法是使用生成的外部客户端启动工作流,然后查看工作流WorkflowExecutionStartedEvent中的输入字段。