如果数据大小是kb,我已经能够执行我的代码将数据从一个s3存储桶复制到另一个rbucket。但是,如果大小增加到几mb,我的任务将因START_To_CLOSE错误而失败。任务失败,taskStarttoClose超时。我已经尝试将defaultTaskStartToCloseTimeoutSeconds重写为60秒,然后在执行工作流时,我看到值设置为10秒。当我让它等待60秒时,我不明白为什么值会改变。活动无法复制大文件。以下是复制活动的代码示例。
@Override
public String copyData(String jobFlowId, String inputFilename) throws IOException, InterruptedException {
AmazonS3 s3Client = new AmazonS3Client(credentials);
String baseOutputFilename = "job/"
CopyObjectRequest copyObjRequest = new CopyObjectRequest(
"bucket1", "/job/data.txt", "bucket2", OutputFilename);
s3Client.copyObject(copyObjRequest);
return "s3n://bucketName/eOutputFilename";
}
答案 0 :(得分:0)
defaultTaskStartToCloseTimeoutSeconds 在活动版本类型注册期间传递给SWF。版本类型注册只发生一次,之后版本类型是不可变的。因此,更改Java代码中的超时值不会更改已注册的值。 解决方案是缓冲活动版本号(在@Activities注释中)以强制新活动版本注册或显式指定超时覆盖(将ActivitySchedulingOptions参数传递给每个活动调用。