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

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

如果数据大小以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";
}
whitzsjs

whitzsjs1#

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

相关问题