in kernel/src/main/java/org/apache/shardingsphere/elasticjob/kernel/executor/facade/SingleShardingJobFacade.java [86:113]
public void registerJobCompleted(final ShardingContexts shardingContexts) {
super.registerJobCompleted(shardingContexts);
JobConfiguration jobConfig = configService.load(true);
JobInstance jobInst = JobRegistry.getInstance().getJobInstance(jobConfig.getJobName());
if (null == jobInst) {
log.warn("Error! Can't find the job instance with name:{}", jobConfig.getJobName());
return;
}
Integer nextIndex = null;
List<JobInstance> availJobInst = instanceService.getAvailableJobInstances();
for (int i = 0; i < availJobInst.size(); i++) {
JobInstance temp = availJobInst.get(i);
if (temp.getServerIp().equals(jobInst.getServerIp())) {
nextIndex = i + 1;
break;
}
}
if (nextIndex != null) {
nextIndex = nextIndex >= availJobInst.size() ? 0 : nextIndex;
jobNodeStorage.fillEphemeralJobNode("next-job-instance-ip", availJobInst.get(nextIndex).getServerIp());
}
if (log.isDebugEnabled()) {
log.debug("job name: {}, next index: {}, sharding total count: {}",
jobConfig.getJobName(), nextIndex, jobConfig.getShardingTotalCount());
}
}