@Override public ShardPullResp call() throws Exception { return client.getHttp().pullJobInstanceShard(jobInstanceId); } }
@Override public ShardOperateResp call() throws Exception { return client.getHttp().returnJobInstanceShard(instanceId, shardId); } }
@Override public ShardOperateResp call() throws Exception { return client.getHttp().finishJobInstanceShard(shardFinishDto); } }
@Override protected Boolean finishShard(ShardFinishDto shardFinishDto, ZkJob zkJob) { ShardOperateResp finishResp = client.getHttp().finishJobInstanceShard(shardFinishDto); if (finishResp.getSuccess()){ return Boolean.TRUE; } if (ShardOperateRespCode.needFinishAgain(finishResp.getCode())){ // TODO need retry to finish again } return Boolean.TRUE; } }
@Override protected Boolean returnShard(final Long instanceId, final Long shardId, final ZkJob zkJob) { ShardOperateResp returnResp; for(;;){ returnResp = client.getHttp().returnJobInstanceShard(instanceId, shardId); if (returnResp == null){ return null; } if (ShardOperateRespCode.needReturnAgain(returnResp.getCode())){ log.info("retry to push shard(job={}, instanceId={}, shardId={}), resp={}", instanceId, zkJob.getJob(), shardId, returnResp); Sleeps.sleep(RETRY_INTERVAL); continue; } checkInvalidInstance(instanceId, zkJob, returnResp.getCode()); return returnResp.getSuccess(); } }
@Override protected PullShard pullShard(Long instanceId, final ZkJob zkJob) { ShardPullResp pullResp; for(;;){ pullResp = client.getHttp().pullJobInstanceShard(instanceId); if (pullResp == null){ return null; } if (ShardOperateRespCode.needPullAgain(pullResp.getCode())){ log.info("retry to pull shard(job={}, instanceId={}), resp={}", zkJob.getJob(), instanceId, pullResp); Sleeps.sleep(RETRY_INTERVAL); continue; } checkInvalidInstance(instanceId, zkJob, pullResp.getCode()); return pullResp.getPullShard(); } }
@Override protected Boolean finishShard(final ShardFinishDto shardFinishDto, final ZkJob zkJob) { ShardOperateResp finishResp; for(;;){ finishResp = client.getHttp().finishJobInstanceShard(shardFinishDto); if (finishResp == null){ return null; } if (ShardOperateRespCode.needFinishAgain(finishResp.getCode())){ log.info("retry to finish shard(job={}, shardFinishDto={}), resp={}.", shardFinishDto, zkJob.getJob(), finishResp); Sleeps.sleep(RETRY_INTERVAL); continue; } checkInvalidInstance(shardFinishDto.getInstanceId(), zkJob, finishResp.getCode()); return finishResp.getSuccess(); } } }