0

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

1 回答 1

0

defaultTaskStartToCloseTimeoutSeconds在活动版本类型注册期间传递给 SWF。版本类型注册只发生一次,之后版本类型是不可变的。因此,更改 Java 代码中的超时值不会更改已注册的超时值。解决方案是增加活动版本号(在@Act​​ivities注释中)以强制新活动版本注册或显式指定超时覆盖(将ActivitySchedulingOptions参数传递给每个活动调用。

于 2014-10-03T21:21:48.360 回答