Просмотр исходного кода

Merge branch 'DEV' into 'Test'

fix



See merge request !717

tangss 7 лет назад
Родитель
Сommit
eb5b45ca32

+ 7 - 9
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/AsyncScheduleServiceImpl.java

@@ -25,6 +25,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
@@ -96,26 +97,23 @@ public class AsyncScheduleServiceImpl extends BaseService implements AsyncSchedu
     @Override
     public boolean retryJob(AsyncJobTool tool, String sessionId, String jobId, Class<? extends AsyncTaskCallBack> callBackClass) {
         AsyncTaskDTO task = asyncTaskService.getAsyncTask(sessionId);
-        AsyncJobDTO oldJob = task.getJobs().stream().filter(ajob -> ajob.getJobId().equals(jobId)).findFirst().get();
+        AsyncJobDTO job = task.getJobs().stream().filter(ajob -> ajob.getJobId().equals(jobId)).findFirst().get();
+
         AsyncTaskDTO asyncTaskDTO = new AsyncTaskDTO();
-        List<AsyncJobDTO> jobs = new ArrayList<>();
-        AsyncJobDTO job = new AsyncJobDTO();
-        job.setParams(oldJob.getParams());
-        job.setContexts(oldJob.getContexts());
-        job.setJobId(jobId);
-        jobs.add(job);
         asyncTaskDTO.setQueueName(RabbitMQConfiguration.JOB_RESULT_QUEUE);
         asyncTaskDTO.setToolName(tool.getName());
         asyncTaskDTO.setType(tool.getIndex());
-        asyncTaskDTO.setJobs(jobs);
+        asyncTaskDTO.setJobs(Arrays.asList(job));
         asyncTaskDTO.setSessionId(sessionId);
 
         RestTemplate rt = new RestTemplate();
         HttpEntity<AsyncTaskDTO> httpEntity = new HttpEntity<>(asyncTaskDTO, getHeader());
         String url = generateUrl("retry");
         AsyncJobStatus jobStatus = rt.postForObject(url,httpEntity,AsyncJobStatus.class);
+        String newJobId = jobStatus.getJobId();
 
-        asyncTaskService.retryJob(jobId,jobStatus.getJobId(),task);
+        asyncTaskService.retryJob(jobId,newJobId,task);
+        job.setJobId(newJobId);
         putContextAndCallback2Cache(asyncTaskDTO, callBackClass);
         return true;
     }