如何覆盖amazon简单工作流starttoclosetimeout?

kmbjn2e3  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(336)

如果数据大小以kb为单位,我已经能够执行代码将数据从一个s3 bucket复制到另一个rbucket。但是,如果大小增加到几mb,我的任务将失败,并出现start\u to\u close错误。任务失败,taskstarttoclose超时。我尝试过将defaulttaskstarttoclosetimeoutseconds重写为60秒,然后在执行工作流时,我看到值设置为10秒。我不明白为什么值会在我等待60秒后发生变化。活动无法复制大文件。下面是复制活动的代码示例。

  1. @Override
  2. public String copyData(String jobFlowId, String inputFilename) throws IOException, InterruptedException {
  3. AmazonS3 s3Client = new AmazonS3Client(credentials);
  4. String baseOutputFilename = "job/"
  5. CopyObjectRequest copyObjRequest = new CopyObjectRequest(
  6. "bucket1", "/job/data.txt", "bucket2", OutputFilename);
  7. s3Client.copyObject(copyObjRequest);
  8. return "s3n://bucketName/eOutputFilename";
  9. }
whitzsjs

whitzsjs1#

defaulttaskstarttoclosetimeoutseconds在活动版本类型注册期间传递给swf。版本类型注册只发生一次,之后版本类型是不可变的。因此,更改java代码中的超时值并不会更改已注册的超时值。解决方案是使用bump activity version number(在@activities annotation中)强制注册新的活动版本,或者显式指定超时覆盖(向每个活动调用传递activityschedulingoptions参数)。

相关问题