Browse Source

提交代码

chenken 7 years ago
parent
commit
01e4ed1484

+ 2 - 20
examcloud-task-api-provider/src/main/java/cn/com/qmth/task/api/provider/TaskScheduleApi.java

@@ -29,16 +29,7 @@ public class TaskScheduleApi {
 	public void executeJob(@PathVariable String jobName){
 		ScheduleJobEntity scheduleJobEntity = scheduleJobEntityService.findByJobName(jobName);
 		ScheduleJob scheduleJob = scheduleJobEntityService.transformationToScheduleJob(scheduleJobEntity);
-		try{
-			quartzManager.addJob(scheduleJob);
-			scheduleJobEntity.setJobStatus(JobStatus.RUNNING.name());
-			scheduleJobEntity.setOperateResult(JobStatus.RUNNING.name()+" SUCCESS");
-			scheduleJobEntityService.saveScheduleJobEntity(scheduleJobEntity);
-		}catch(Exception e){
-			scheduleJobEntity.setOperateResult(JobStatus.RUNNING.name()+" FAILED");
-			scheduleJobEntityService.saveScheduleJobEntity(scheduleJobEntity);
-			e.printStackTrace();
-		}
+		quartzManager.addJob(scheduleJob);
 	}
 	
 	@ApiOperation(value="暂停job")
@@ -63,16 +54,7 @@ public class TaskScheduleApi {
 	public void resumeJob(@PathVariable String jobName){
 		ScheduleJobEntity scheduleJobEntity = scheduleJobEntityService.findByJobName(jobName);
 		ScheduleJob scheduleJob = scheduleJobEntityService.transformationToScheduleJob(scheduleJobEntity);
-		try{
-			quartzManager.resumeJob(scheduleJob);
-			scheduleJobEntity.setJobStatus(JobStatus.RESUME.name());
-			scheduleJobEntity.setOperateResult(JobStatus.RESUME.name()+" SUCCESS");
-			scheduleJobEntityService.saveScheduleJobEntity(scheduleJobEntity);
-		}catch(Exception e){
-			scheduleJobEntity.setOperateResult(JobStatus.RESUME.name()+" FAILED");
-			scheduleJobEntityService.saveScheduleJobEntity(scheduleJobEntity);
-			e.printStackTrace();
-		}
+		quartzManager.resumeJob(scheduleJob);
 	}
 	
 	@ApiOperation(value="删除job")

+ 5 - 0
examcloud-task-service/pom.xml

@@ -18,5 +18,10 @@
 			<artifactId>examcloud-task-dao</artifactId>
 			<version>${examcloud.version}</version>
 		</dependency>
+		<dependency>
+			<groupId>cn.com.qmth.examcloud.core.oe</groupId>
+			<artifactId>examcloud-core-oe-api-client</artifactId>
+			<version>${examcloud.version}</version>
+		</dependency>
   </dependencies>	
 </project>

+ 11 - 5
examcloud-task-service/src/main/java/cn/com/qmth/task/service/job/JobsInitialization.java

@@ -24,11 +24,17 @@ public class JobsInitialization implements Runnable{
 	public void run() {
 		List<ScheduleJobEntity> scheduleJobEntitys = scheduleJobEntityService.findAll();
     	for(ScheduleJobEntity scheduleJobEntity:scheduleJobEntitys){
-    		ScheduleJob scheduleJob = scheduleJobEntityService.transformationToScheduleJob(scheduleJobEntity);
-    		quartzManager.addJob(scheduleJob);
-    		scheduleJobEntity.setJobStatus(JobStatus.RUNNING.name());
-			scheduleJobEntity.setOperateResult(JobStatus.RUNNING.name()+" SUCCESS");
-			scheduleJobEntityService.saveScheduleJobEntity(scheduleJobEntity);
+    		try{
+    			ScheduleJob scheduleJob = scheduleJobEntityService.transformationToScheduleJob(scheduleJobEntity);
+        		quartzManager.addJob(scheduleJob);
+        		scheduleJobEntity.setJobStatus(JobStatus.RUNNING.name());
+    			scheduleJobEntity.setOperateResult(JobStatus.RUNNING.name()+" SUCCESS");
+    			scheduleJobEntityService.saveScheduleJobEntity(scheduleJobEntity);
+    		}catch(Exception e){
+    			
+    			scheduleJobEntity.setOperateResult(JobStatus.RUNNING.name()+" FAILED");
+    			scheduleJobEntityService.saveScheduleJobEntity(scheduleJobEntity);
+    		}
     	}
 	} 
 	

+ 32 - 5
examcloud-task-service/src/main/java/cn/com/qmth/task/service/job/OeCleanExamRecordTask.java

@@ -2,11 +2,19 @@ package cn.com.qmth.task.service.job;
 
 import java.util.Date;
 
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
+import cn.com.qmth.examcloud.commons.base.logging.ExamCloudLog;
+import cn.com.qmth.examcloud.commons.base.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.base.util.DateFormat;
+import cn.com.qmth.examcloud.core.oe.api.CleanExamRecordService;
 import cn.com.qmth.task.base.AbstractTask;
 import cn.com.qmth.task.base.ScheduleJob;
+import cn.com.qmth.task.base.enums.JobStatus;
+import cn.com.qmth.task.entity.ScheduleJobEntity;
+import cn.com.qmth.task.service.ScheduleJobEntityService;
 
 /**
  * 
@@ -17,11 +25,30 @@ import cn.com.qmth.task.base.ScheduleJob;
  */
 @Component("oeCleanExamRecordTask")
 public class OeCleanExamRecordTask extends AbstractTask{
-
+	
+	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog("EXAMCLOUD_TASK");
+	
+	@Autowired
+	@Qualifier("cleanExamRecordClient")
+	private CleanExamRecordService cleanExamRecordService;
+	
+	@Autowired
+	private ScheduleJobEntityService scheduleJobEntityService;
+	
 	@Override
-	public void run(ScheduleJob scheduleJob)
-			throws Exception {
-		String now = DateFormat.dateFormat(new Date());
-		System.out.println(now+"oeCleanExamRecordTask Run");
+	public void run(ScheduleJob scheduleJob){
+		LOG.info(DateFormat.dateFormat(new Date())+"oeCleanExamRecordTask Run");
+		ScheduleJobEntity scheduleJobEntity = scheduleJobEntityService.findByJobName(scheduleJob.getJobName());
+		try{
+			cleanExamRecordService.cleanExamExpiredExamRecord();
+			scheduleJobEntity.setOperateResult("execute success");
+			scheduleJobEntity.setJobStatus(JobStatus.RUNNING.name());
+			scheduleJobEntityService.saveScheduleJobEntity(scheduleJobEntity);
+		}catch(Exception e){
+			scheduleJobEntity.setOperateResult("execute failed");
+			scheduleJobEntityService.saveScheduleJobEntity(scheduleJobEntity);
+			e.printStackTrace();
+		}
+		
 	}
 }

+ 0 - 13
examcloud-task-starter/src/main/java/cn/com/qmth/task/starter/QuartzConfigration.java

@@ -1,13 +0,0 @@
-package cn.com.qmth.task.starter;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.scheduling.quartz.SchedulerFactoryBean;
-
-@Configuration
-public class QuartzConfigration {
-	@Bean(name = "schedulerFactoryBean")
-    public SchedulerFactoryBean schedulerFactory() {
-        return new SchedulerFactoryBean();
-	}
-}

+ 15 - 0
examcloud-task-starter/src/main/java/cn/com/qmth/task/starter/TaskApplication.java

@@ -4,9 +4,13 @@ import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.cloud.client.loadbalancer.LoadBalanced;
 import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.context.annotation.Bean;
 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.quartz.SchedulerFactoryBean;
+import org.springframework.web.client.RestTemplate;
 
 @SpringBootApplication(scanBasePackages = {"cn.com.qmth"})
 @EnableJpaRepositories(basePackages = {"cn.com.qmth"})
@@ -22,4 +26,15 @@ public class TaskApplication {
     	application.run(args);
     }
     
+    @Bean
+	@LoadBalanced
+	public RestTemplate restTemplate() {
+		return new RestTemplate();
+	}
+    
+    @Bean(name = "schedulerFactoryBean")
+    public SchedulerFactoryBean schedulerFactory() {
+        return new SchedulerFactoryBean();
+	}
+    
 }