如果数据大小以kb为单位,我已经能够执行代码将数据从一个s3 bucket复制到另一个rbucket。但是,如果大小增加到几mb,我的任务将失败,并出现start\u to\u 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";
}
1条答案
按热度按时间whitzsjs1#
defaulttaskstarttoclosetimeoutseconds在活动版本类型注册期间传递给swf。版本类型注册只发生一次,之后版本类型是不可变的。因此,更改java代码中的超时值并不会更改已注册的超时值。解决方案是使用bump activity version number(在@activities annotation中)强制注册新的活动版本,或者显式指定超时覆盖(向每个活动调用传递activityschedulingoptions参数)。