wangwei 6 жил өмнө
parent
commit
cab91cb288
23 өөрчлөгдсөн 130 нэмэгдсэн , 747 устгасан
  1. 2 2
      examcloud-task-api-provider/src/main/java/cn/com/qmth/examcloud/task/api/controller/JobController.java
  2. 0 59
      examcloud-task-base/src/main/java/cn/com/qmth/examcloud/task/base/AbstractTask.java
  3. 0 52
      examcloud-task-base/src/main/java/cn/com/qmth/examcloud/task/base/DistributionJob.java
  4. 0 262
      examcloud-task-base/src/main/java/cn/com/qmth/examcloud/task/base/QuartzManager.java
  5. 0 166
      examcloud-task-base/src/main/java/cn/com/qmth/examcloud/task/base/ScheduleJob.java
  6. 0 18
      examcloud-task-base/src/main/java/cn/com/qmth/examcloud/task/base/StatefulDistributionJob.java
  7. 0 20
      examcloud-task-base/src/main/java/cn/com/qmth/examcloud/task/base/Task.java
  8. 0 40
      examcloud-task-base/src/main/java/cn/com/qmth/examcloud/task/base/TaskTracker.java
  9. 2 2
      examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/DefaultTaskTracker.java
  10. 3 3
      examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/ChangeExamCaptureQueueStatusTask.java
  11. 3 3
      examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/CopyExamStudentTask.java
  12. 3 3
      examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/DataSyncTask.java
  13. 3 3
      examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/ExamCaptureQueueFailedDisposeTask.java
  14. 3 3
      examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/ExamScoreObtainNotifyQueueTask.java
  15. 36 36
      examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/ExamScoreObtainNotifyTask.java
  16. 3 3
      examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/ExamStudentImportCleanTask.java
  17. 3 3
      examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/ExamStudentImportDataProcessingTask.java
  18. 3 3
      examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/ExamStudentImportParsingFileTask.java
  19. 3 3
      examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/OeCleanExamRecordTask.java
  20. 3 3
      examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/OeScorePushTask.java
  21. 3 3
      examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/ProcessingExamCaptureQueueTask.java
  22. 55 55
      examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/TaskTraceCleanTask.java
  23. 2 2
      examcloud-task-starter/src/main/java/cn/com/qmth/examcloud/task/starter/config/JobsStartup.java

+ 2 - 2
examcloud-task-api-provider/src/main/java/cn/com/qmth/examcloud/task/api/controller/JobController.java

@@ -9,11 +9,11 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import cn.com.qmth.examcloud.commons.exception.StatusException;
-import cn.com.qmth.examcloud.task.base.QuartzManager;
-import cn.com.qmth.examcloud.task.base.ScheduleJob;
 import cn.com.qmth.examcloud.task.dao.ScheduleJobRepo;
 import cn.com.qmth.examcloud.task.dao.entity.ScheduleJobEntity;
 import cn.com.qmth.examcloud.web.support.ControllerSupport;
+import cn.com.qmth.examcloud.web.task.QuartzManager;
+import cn.com.qmth.examcloud.web.task.ScheduleJob;
 import io.swagger.annotations.ApiOperation;
 
 @Transactional

+ 0 - 59
examcloud-task-base/src/main/java/cn/com/qmth/examcloud/task/base/AbstractTask.java

@@ -1,59 +0,0 @@
-package cn.com.qmth.examcloud.task.base;
-
-import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
-import cn.com.qmth.examcloud.commons.util.JsonUtil;
-
-/**
- * 任务调度抽象类
- *
- * @author WANGWEI
- * @date 2018年3月7日
- * @Copyright (c) 2018-2020 WANGWEI [QQ:522080330] All Rights Reserved.
- */
-public abstract class AbstractTask implements Task {
-
-	protected ExamCloudLog taskLog = ExamCloudLogFactory.getLog("TASK_LOGGER");
-
-	protected ExamCloudLog debugLog = ExamCloudLogFactory.getLog(this.getClass());
-
-	public abstract TaskTracker getTaskTracker();
-
-	public abstract void run(ScheduleJob scheduleJob) throws Exception;
-
-	@Override
-	public void execute(ScheduleJob scheduleJob, String traceId) {
-		try {
-			getTaskTracker().start(scheduleJob, traceId);
-		} catch (Exception e) {
-			taskLog.error("[TASK TRACKER]. start", e);
-		}
-		if (taskLog.isDebugEnabled()) {
-			taskLog.debug("[TASK IN]. detail: " + JsonUtil.toJson(scheduleJob));
-		}
-		try {
-			run(scheduleJob);
-		} catch (Exception e) {
-			try {
-				getTaskTracker().whenException(scheduleJob, traceId, e);
-			} catch (Exception ex) {
-				taskLog.error("[TASK TRACKER]. whenException", ex);
-			}
-			if (taskLog.isErrorEnabled()) {
-				taskLog.error("[TASK EXCEPTION]. detail: " + JsonUtil.toJson(scheduleJob), e);
-			}
-			throw new ExamCloudRuntimeException(e);
-		}
-		try {
-			getTaskTracker().onEnd(scheduleJob, traceId);
-		} catch (Exception e) {
-			taskLog.error("[TASK TRACKER]. onEnd", e);
-		}
-		if (taskLog.isDebugEnabled()) {
-			taskLog.debug("[TASK OUT]. detail: " + JsonUtil.toJson(scheduleJob));
-		}
-
-	}
-
-}

+ 0 - 52
examcloud-task-base/src/main/java/cn/com/qmth/examcloud/task/base/DistributionJob.java

@@ -1,52 +0,0 @@
-package cn.com.qmth.examcloud.task.base;
-
-import org.apache.logging.log4j.ThreadContext;
-import org.quartz.Job;
-import org.quartz.JobExecutionContext;
-import org.quartz.JobExecutionException;
-
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
-import cn.com.qmth.examcloud.commons.util.JsonUtil;
-import cn.com.qmth.examcloud.commons.util.ThreadLocalUtil;
-import cn.com.qmth.examcloud.web.support.SpringContextHolder;
-
-/**
- * 并行任务分发器
- *
- * @author WANGWEI
- * @date 2018年3月7日
- * @Copyright (c) 2018-2020 WANGWEI [QQ:522080330] All Rights Reserved.
- */
-public class DistributionJob implements Job {
-	private static final ExamCloudLog TASK_LOG = ExamCloudLogFactory.getLog("TASK_LOGGER");
-
-	@Override
-	public void execute(JobExecutionContext context) throws JobExecutionException {
-		String traceId = ThreadLocalUtil.next();
-		ThreadContext.put("TRACE_ID", traceId);
-		ScheduleJob scheduleJob = null;
-		try {
-			scheduleJob = (ScheduleJob) context.getMergedJobDataMap().get("scheduleJob");
-
-			if (TASK_LOG.isDebugEnabled()) {
-				TASK_LOG.debug("distribute job. job detail :" + JsonUtil.toJson(scheduleJob));
-			}
-			Object bean = SpringContextHolder.getBean(scheduleJob.getSpringBean());
-
-			Task task = (Task) bean;
-			task.execute(scheduleJob, traceId);
-		} catch (Exception e) {
-			if (TASK_LOG.isErrorEnabled()) {
-				TASK_LOG.error(
-						"fail to distribute job. job detail :" + JsonUtil.toJson(scheduleJob), e);
-			}
-			throw new JobExecutionException(e);
-		} finally {
-			// 清理log4j线程上下文
-			ThreadContext.clearAll();
-		}
-
-	}
-
-}

+ 0 - 262
examcloud-task-base/src/main/java/cn/com/qmth/examcloud/task/base/QuartzManager.java

@@ -1,262 +0,0 @@
-package cn.com.qmth.examcloud.task.base;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
-import org.quartz.CronScheduleBuilder;
-import org.quartz.CronTrigger;
-import org.quartz.Job;
-import org.quartz.JobBuilder;
-import org.quartz.JobDetail;
-import org.quartz.JobExecutionContext;
-import org.quartz.JobKey;
-import org.quartz.Scheduler;
-import org.quartz.SchedulerException;
-import org.quartz.Trigger;
-import org.quartz.TriggerBuilder;
-import org.quartz.TriggerKey;
-import org.quartz.impl.matchers.GroupMatcher;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.quartz.SchedulerFactoryBean;
-import org.springframework.stereotype.Component;
-
-import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
-import cn.com.qmth.examcloud.commons.util.JsonUtil;
-
-/**
- * Quartz 管理器
- *
- * @author WANGWEI
- * @date 2018年3月7日
- * @Copyright (c) 2018-2020 WANGWEI [QQ:522080330] All Rights Reserved.
- */
-@Component
-public class QuartzManager {
-	private static final ExamCloudLog TASK_LOG = ExamCloudLogFactory.getLog("TASK_LOGGER");
-
-	@Autowired
-	private SchedulerFactoryBean schedulerFactoryBean;
-
-	/**
-	 * 添加任务
-	 *
-	 * @author WANGWEI
-	 * @param job
-	 */
-	public void addJob(ScheduleJob job) {
-		if (TASK_LOG.isDebugEnabled()) {
-			TASK_LOG.debug("add a job. job detail: " + JsonUtil.toJson(job));
-		}
-
-		try {
-			Scheduler scheduler = schedulerFactoryBean.getScheduler();
-			TriggerKey triggerKey = TriggerKey.triggerKey(job.getJobName(), job.getJobGroup());
-
-			CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
-
-			if (null == trigger) {
-				Class<? extends Job> jobClass = job.isStateful()
-						? StatefulDistributionJob.class
-						: DistributionJob.class;
-				JobDetail jobDetail = JobBuilder.newJob(jobClass)
-						.withIdentity(job.getJobName(), job.getJobGroup()).build();
-
-				jobDetail.getJobDataMap().put("scheduleJob", job);
-
-				CronScheduleBuilder scheduleBuilder = CronScheduleBuilder
-						.cronSchedule(job.getCronExpression());
-
-				trigger = TriggerBuilder.newTrigger()
-						.withIdentity(job.getJobName(), job.getJobGroup())
-						.withSchedule(scheduleBuilder).build();
-
-				scheduler.scheduleJob(jobDetail, trigger);
-			} else {
-				CronScheduleBuilder scheduleBuilder = CronScheduleBuilder
-						.cronSchedule(job.getCronExpression());
-
-				trigger = trigger.getTriggerBuilder().withIdentity(triggerKey)
-						.withSchedule(scheduleBuilder).build();
-
-				scheduler.rescheduleJob(triggerKey, trigger);
-			}
-		} catch (SchedulerException e) {
-			TASK_LOG.error("Fail to add a job. job detail: " + JsonUtil.toJson(job), e);
-			throw new ExamCloudRuntimeException(e);
-		}
-
-		if (TASK_LOG.isDebugEnabled()) {
-			TASK_LOG.debug("add a job successfully. job detail: " + JsonUtil.toJson(job));
-		}
-	}
-
-	/**
-	 * 获取所有计划中的任务列表
-	 *
-	 * @author WANGWEI
-	 * @return
-	 */
-	public List<ScheduleJob> getAllJobs() {
-		try {
-			Scheduler scheduler = schedulerFactoryBean.getScheduler();
-			GroupMatcher<JobKey> matcher = GroupMatcher.anyJobGroup();
-			Set<JobKey> jobKeys = scheduler.getJobKeys(matcher);
-			List<ScheduleJob> jobList = new ArrayList<ScheduleJob>();
-			for (JobKey jobKey : jobKeys) {
-				List<? extends Trigger> triggers = scheduler.getTriggersOfJob(jobKey);
-				for (Trigger trigger : triggers) {
-					ScheduleJob job = new ScheduleJob();
-					job.setJobName(jobKey.getName());
-					job.setJobGroup(jobKey.getGroup());
-					Trigger.TriggerState triggerState = scheduler.getTriggerState(trigger.getKey());
-					job.setTriggerState(triggerState.name());
-					if (trigger instanceof CronTrigger) {
-						CronTrigger cronTrigger = (CronTrigger) trigger;
-						String cronExpression = cronTrigger.getCronExpression();
-						job.setCronExpression(cronExpression);
-					}
-					jobList.add(job);
-				}
-			}
-			return jobList;
-		} catch (SchedulerException e) {
-			TASK_LOG.error("Fail to get all jobs.", e);
-			throw new ExamCloudRuntimeException(e);
-		}
-	}
-
-	/**
-	 * 所有正在运行的job
-	 *
-	 * @author WANGWEI
-	 * @return
-	 */
-	public List<ScheduleJob> getRunningJobs() {
-		try {
-			Scheduler scheduler = schedulerFactoryBean.getScheduler();
-			List<JobExecutionContext> executingJobs = scheduler.getCurrentlyExecutingJobs();
-			List<ScheduleJob> jobList = new ArrayList<ScheduleJob>(executingJobs.size());
-			for (JobExecutionContext context : executingJobs) {
-				ScheduleJob job = new ScheduleJob();
-				JobDetail jobDetail = context.getJobDetail();
-				JobKey jobKey = jobDetail.getKey();
-				Trigger trigger = context.getTrigger();
-				job.setJobName(jobKey.getName());
-				job.setJobGroup(jobKey.getGroup());
-				Trigger.TriggerState triggerState = scheduler.getTriggerState(trigger.getKey());
-				job.setTriggerState(triggerState.name());
-				if (trigger instanceof CronTrigger) {
-					CronTrigger cronTrigger = (CronTrigger) trigger;
-					String cronExpression = cronTrigger.getCronExpression();
-					job.setCronExpression(cronExpression);
-				}
-				jobList.add(job);
-			}
-			return jobList;
-		} catch (Exception e) {
-			TASK_LOG.error("Fail to get running jobs.", e);
-			throw new ExamCloudRuntimeException(e);
-		}
-	}
-
-	/**
-	 * 暂停一个job
-	 *
-	 * @author WANGWEI
-	 * @param scheduleJob
-	 */
-	public void pauseJob(ScheduleJob scheduleJob) {
-		try {
-			Scheduler scheduler = schedulerFactoryBean.getScheduler();
-			JobKey jobKey = JobKey.jobKey(scheduleJob.getJobName(), scheduleJob.getJobGroup());
-			scheduler.pauseJob(jobKey);
-		} catch (SchedulerException e) {
-			TASK_LOG.error("Fail to pause Job. job detail: " + JsonUtil.toJson(scheduleJob), e);
-			throw new ExamCloudRuntimeException(e);
-		}
-	}
-
-	/**
-	 * 恢复一个job
-	 *
-	 * @author WANGWEI
-	 * @param scheduleJob
-	 */
-	public void resumeJob(ScheduleJob scheduleJob) {
-		try {
-			Scheduler scheduler = schedulerFactoryBean.getScheduler();
-			JobKey jobKey = JobKey.jobKey(scheduleJob.getJobName(), scheduleJob.getJobGroup());
-			scheduler.resumeJob(jobKey);
-		} catch (SchedulerException e) {
-			TASK_LOG.error("Fail to resume job. job detail: " + JsonUtil.toJson(scheduleJob), e);
-			throw new ExamCloudRuntimeException(e);
-		}
-	}
-
-	/**
-	 * 删除一个job
-	 *
-	 * @author WANGWEI
-	 * @param scheduleJob
-	 */
-	public void deleteJob(ScheduleJob scheduleJob) {
-		try {
-			Scheduler scheduler = schedulerFactoryBean.getScheduler();
-			JobKey jobKey = JobKey.jobKey(scheduleJob.getJobName(), scheduleJob.getJobGroup());
-			scheduler.deleteJob(jobKey);
-		} catch (SchedulerException e) {
-			TASK_LOG.error("Fail to delete job. job detail: " + JsonUtil.toJson(scheduleJob), e);
-			throw new ExamCloudRuntimeException(e);
-		}
-
-	}
-
-	/**
-	 * 执行job
-	 *
-	 * @author WANGWEI
-	 * @param scheduleJob
-	 */
-	public void runJob(ScheduleJob scheduleJob) {
-		try {
-			Scheduler scheduler = schedulerFactoryBean.getScheduler();
-			JobKey jobKey = JobKey.jobKey(scheduleJob.getJobName(), scheduleJob.getJobGroup());
-			scheduler.triggerJob(jobKey);
-		} catch (SchedulerException e) {
-			TASK_LOG.error("Fail to run job. job detail: " + JsonUtil.toJson(scheduleJob), e);
-			throw new ExamCloudRuntimeException(e);
-		}
-	}
-
-	/**
-	 * 更新job时间表达式
-	 *
-	 * @author WANGWEI
-	 * @param scheduleJob
-	 */
-	public void updateJobCronExpression(ScheduleJob scheduleJob) {
-		try {
-			Scheduler scheduler = schedulerFactoryBean.getScheduler();
-
-			TriggerKey triggerKey = TriggerKey.triggerKey(scheduleJob.getJobName(),
-					scheduleJob.getJobGroup());
-
-			CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
-
-			CronScheduleBuilder scheduleBuilder = CronScheduleBuilder
-					.cronSchedule(scheduleJob.getCronExpression());
-
-			trigger = trigger.getTriggerBuilder().withIdentity(triggerKey)
-					.withSchedule(scheduleBuilder).build();
-
-			scheduler.rescheduleJob(triggerKey, trigger);
-		} catch (SchedulerException e) {
-			TASK_LOG.error("Fail to update job cron expression. job detail :"
-					+ JsonUtil.toJson(scheduleJob), e);
-			throw new ExamCloudRuntimeException(e);
-		}
-	}
-}

+ 0 - 166
examcloud-task-base/src/main/java/cn/com/qmth/examcloud/task/base/ScheduleJob.java

@@ -1,166 +0,0 @@
-package cn.com.qmth.examcloud.task.base;
-
-import java.io.Serializable;
-
-/**
- * 任务配置
- *
- * @author WANGWEI
- * @date 2018年3月7日
- * @Copyright (c) 2018-2020 WANGWEI [QQ:522080330] All Rights Reserved.
- */
-public class ScheduleJob implements Serializable {
-	private static final long serialVersionUID = -1638993747996917970L;
-
-	private Long jobId;
-
-	/**
-	 * 任务名称
-	 */
-	private String jobName;
-
-	/**
-	 * 任务分组
-	 */
-	private String jobGroup;
-
-	/**
-	 * 触发器状态
-	 */
-	private String triggerState;
-
-	/**
-	 * cron表达式
-	 */
-	private String cronExpression;
-
-	/**
-	 * 描述
-	 */
-	private String description;
-
-	/**
-	 * Spring bean
-	 */
-	private String springBean;
-
-	/**
-	 * 是否顺序执行
-	 */
-	private boolean stateful = true;
-
-	private String ext1;
-
-	private String ext2;
-
-	private String ext3;
-
-	private String ext4;
-
-	private String ext5;
-
-	public Long getJobId() {
-		return jobId;
-	}
-
-	public void setJobId(Long jobId) {
-		this.jobId = jobId;
-	}
-
-	public String getJobName() {
-		return jobName;
-	}
-
-	public void setJobName(String jobName) {
-		this.jobName = jobName;
-	}
-
-	public String getJobGroup() {
-		return jobGroup;
-	}
-
-	public void setJobGroup(String jobGroup) {
-		this.jobGroup = jobGroup;
-	}
-
-	public String getTriggerState() {
-		return triggerState;
-	}
-
-	public void setTriggerState(String triggerState) {
-		this.triggerState = triggerState;
-	}
-
-	public String getCronExpression() {
-		return cronExpression;
-	}
-
-	public void setCronExpression(String cronExpression) {
-		this.cronExpression = cronExpression;
-	}
-
-	public String getDescription() {
-		return description;
-	}
-
-	public void setDescription(String description) {
-		this.description = description;
-	}
-
-	public String getSpringBean() {
-		return springBean;
-	}
-
-	public void setSpringBean(String springBean) {
-		this.springBean = springBean;
-	}
-
-	public boolean isStateful() {
-		return stateful;
-	}
-
-	public void setStateful(boolean stateful) {
-		this.stateful = stateful;
-	}
-
-	public String getExt1() {
-		return ext1;
-	}
-
-	public void setExt1(String ext1) {
-		this.ext1 = ext1;
-	}
-
-	public String getExt2() {
-		return ext2;
-	}
-
-	public void setExt2(String ext2) {
-		this.ext2 = ext2;
-	}
-
-	public String getExt3() {
-		return ext3;
-	}
-
-	public void setExt3(String ext3) {
-		this.ext3 = ext3;
-	}
-
-	public String getExt4() {
-		return ext4;
-	}
-
-	public void setExt4(String ext4) {
-		this.ext4 = ext4;
-	}
-
-	public String getExt5() {
-		return ext5;
-	}
-
-	public void setExt5(String ext5) {
-		this.ext5 = ext5;
-	}
-
-}

+ 0 - 18
examcloud-task-base/src/main/java/cn/com/qmth/examcloud/task/base/StatefulDistributionJob.java

@@ -1,18 +0,0 @@
-package cn.com.qmth.examcloud.task.base;
-
-import org.quartz.DisallowConcurrentExecution;
-import org.quartz.PersistJobDataAfterExecution;
-
-/**
- * 顺序执行任务分发器
- *
- * @author WANGWEI
- * @date 2018年3月7日
- * @Copyright (c) 2018-2020 WANGWEI [QQ:522080330] All Rights Reserved.
- */
-@DisallowConcurrentExecution
-@PersistJobDataAfterExecution
-public class StatefulDistributionJob extends DistributionJob
-{
-
-}

+ 0 - 20
examcloud-task-base/src/main/java/cn/com/qmth/examcloud/task/base/Task.java

@@ -1,20 +0,0 @@
-package cn.com.qmth.examcloud.task.base;
-
-/**
- * 任务接口
- *
- * @author WANGWEI
- * @date 2018年3月7日
- * @Copyright (c) 2018-2020 WANGWEI [QQ:522080330] All Rights Reserved.
- */
-public interface Task {
-
-	/**
-	 * 执行任务
-	 *
-	 * @author WANGWEI
-	 * @param scheduleJob
-	 * @param traceId
-	 */
-	void execute(ScheduleJob scheduleJob, String traceId);
-}

+ 0 - 40
examcloud-task-base/src/main/java/cn/com/qmth/examcloud/task/base/TaskTracker.java

@@ -1,40 +0,0 @@
-package cn.com.qmth.examcloud.task.base;
-
-/**
- * 任务跟踪记载器
- *
- * @author WANGWEI
- * @date 2018年7月25日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-public interface TaskTracker {
-
-	/**
-	 * 启动
-	 *
-	 * @author WANGWEI
-	 * @param scheduleJob
-	 * @param traceId
-	 */
-	void start(final ScheduleJob scheduleJob, final String traceId);
-
-	/**
-	 * 异常
-	 *
-	 * @author WANGWEI
-	 * @param scheduleJob
-	 * @param traceId
-	 * @param e
-	 */
-	void whenException(final ScheduleJob scheduleJob, final String traceId, Exception e);
-
-	/**
-	 * 结束
-	 *
-	 * @author WANGWEI
-	 * @param scheduleJob
-	 * @param traceId
-	 */
-	void onEnd(final ScheduleJob scheduleJob, final String traceId);
-
-}

+ 2 - 2
examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/DefaultTaskTracker.java

@@ -11,10 +11,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import cn.com.qmth.examcloud.commons.exception.StatusException;
-import cn.com.qmth.examcloud.task.base.ScheduleJob;
-import cn.com.qmth.examcloud.task.base.TaskTracker;
 import cn.com.qmth.examcloud.task.dao.TaskTraceRepo;
 import cn.com.qmth.examcloud.task.dao.entity.TaskTraceEntity;
+import cn.com.qmth.examcloud.web.task.ScheduleJob;
+import cn.com.qmth.examcloud.web.task.TaskTracker;
 
 /**
  * 类注释

+ 3 - 3
examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/ChangeExamCaptureQueueStatusTask.java

@@ -4,9 +4,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import cn.com.qmth.examcloud.core.oe.student.face.api.ExamCaptureQueueCloudService;
-import cn.com.qmth.examcloud.task.base.AbstractTask;
-import cn.com.qmth.examcloud.task.base.ScheduleJob;
-import cn.com.qmth.examcloud.task.base.TaskTracker;
+import cn.com.qmth.examcloud.web.task.AbstractTask;
+import cn.com.qmth.examcloud.web.task.ScheduleJob;
+import cn.com.qmth.examcloud.web.task.TaskTracker;
 
 /**
  * 

+ 3 - 3
examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/CopyExamStudentTask.java

@@ -13,12 +13,12 @@ import cn.com.qmth.examcloud.examwork.api.request.CopyExamStudentsReq;
 import cn.com.qmth.examcloud.examwork.api.request.LockExamStudentsReq;
 import cn.com.qmth.examcloud.examwork.api.request.UnlockExamStudentsReq;
 import cn.com.qmth.examcloud.examwork.api.response.CopyExamStudentsResp;
-import cn.com.qmth.examcloud.task.base.AbstractTask;
-import cn.com.qmth.examcloud.task.base.ScheduleJob;
-import cn.com.qmth.examcloud.task.base.TaskTracker;
 import cn.com.qmth.examcloud.task.dao.CopyExamStudentRepo;
 import cn.com.qmth.examcloud.task.dao.entity.CopyExamStudentEntity;
 import cn.com.qmth.examcloud.task.dao.enums.CopyExamStudentStatus;
+import cn.com.qmth.examcloud.web.task.AbstractTask;
+import cn.com.qmth.examcloud.web.task.ScheduleJob;
+import cn.com.qmth.examcloud.web.task.TaskTracker;
 
 /**
  * 考生复制任务

+ 3 - 3
examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/DataSyncTask.java

@@ -9,12 +9,12 @@ import org.springframework.stereotype.Component;
 import cn.com.qmth.examcloud.commons.exception.StatusException;
 import cn.com.qmth.examcloud.commons.util.JsonUtil;
 import cn.com.qmth.examcloud.global.api.request.SyncBaseRequest;
-import cn.com.qmth.examcloud.task.base.AbstractTask;
-import cn.com.qmth.examcloud.task.base.ScheduleJob;
-import cn.com.qmth.examcloud.task.base.TaskTracker;
 import cn.com.qmth.examcloud.task.dao.DataSyncRepo;
 import cn.com.qmth.examcloud.task.dao.entity.DataSyncEntity;
 import cn.com.qmth.examcloud.task.service.DataSyncService;
+import cn.com.qmth.examcloud.web.task.AbstractTask;
+import cn.com.qmth.examcloud.web.task.ScheduleJob;
+import cn.com.qmth.examcloud.web.task.TaskTracker;
 
 /**
  * 数据同步任务

+ 3 - 3
examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/ExamCaptureQueueFailedDisposeTask.java

@@ -4,9 +4,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import cn.com.qmth.examcloud.core.oe.student.face.api.ExamCaptureQueueCloudService;
-import cn.com.qmth.examcloud.task.base.AbstractTask;
-import cn.com.qmth.examcloud.task.base.ScheduleJob;
-import cn.com.qmth.examcloud.task.base.TaskTracker;
+import cn.com.qmth.examcloud.web.task.AbstractTask;
+import cn.com.qmth.examcloud.web.task.ScheduleJob;
+import cn.com.qmth.examcloud.web.task.TaskTracker;
 
 
 /**

+ 3 - 3
examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/ExamScoreObtainNotifyQueueTask.java

@@ -4,9 +4,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import cn.com.qmth.examcloud.core.oe.student.api.OeExamScoreObtainQueueCloudService;
-import cn.com.qmth.examcloud.task.base.AbstractTask;
-import cn.com.qmth.examcloud.task.base.ScheduleJob;
-import cn.com.qmth.examcloud.task.base.TaskTracker;
+import cn.com.qmth.examcloud.web.task.AbstractTask;
+import cn.com.qmth.examcloud.web.task.ScheduleJob;
+import cn.com.qmth.examcloud.web.task.TaskTracker;
 
 /**
  * 

+ 36 - 36
examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/ExamScoreObtainNotifyTask.java

@@ -1,36 +1,36 @@
-package cn.com.qmth.examcloud.task.service.job;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import cn.com.qmth.examcloud.core.oe.student.api.OeExamScoreNoticeQueueCloudService;
-import cn.com.qmth.examcloud.task.base.AbstractTask;
-import cn.com.qmth.examcloud.task.base.ScheduleJob;
-import cn.com.qmth.examcloud.task.base.TaskTracker;
-
-/**
- * 
- * @author lideyin
- * @date 2019年3月11日 下午6:26:23
- * @description 获取考试分数通知任务
- */
-@Component("examScoreObtainNotifyTask")
-public class ExamScoreObtainNotifyTask extends AbstractTask{
-
-	@Autowired
-	private TaskTracker taskTracker;
-	@Autowired
-	private OeExamScoreNoticeQueueCloudService oeExamScoreNoticeQueueCloudService;
-	
-	@Override
-	public TaskTracker getTaskTracker() {
-		return taskTracker;
-	}
-
-	@Override
-	public void run(ScheduleJob scheduleJob) throws Exception {
-		oeExamScoreNoticeQueueCloudService.sendObtainScoreNotice();
-	}
-	
-	
-}
+package cn.com.qmth.examcloud.task.service.job;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import cn.com.qmth.examcloud.core.oe.student.api.OeExamScoreNoticeQueueCloudService;
+import cn.com.qmth.examcloud.web.task.AbstractTask;
+import cn.com.qmth.examcloud.web.task.ScheduleJob;
+import cn.com.qmth.examcloud.web.task.TaskTracker;
+
+/**
+ * 
+ * @author lideyin
+ * @date 2019年3月11日 下午6:26:23
+ * @description 获取考试分数通知任务
+ */
+@Component("examScoreObtainNotifyTask")
+public class ExamScoreObtainNotifyTask extends AbstractTask{
+
+	@Autowired
+	private TaskTracker taskTracker;
+	@Autowired
+	private OeExamScoreNoticeQueueCloudService oeExamScoreNoticeQueueCloudService;
+	
+	@Override
+	public TaskTracker getTaskTracker() {
+		return taskTracker;
+	}
+
+	@Override
+	public void run(ScheduleJob scheduleJob) throws Exception {
+		oeExamScoreNoticeQueueCloudService.sendObtainScoreNotice();
+	}
+	
+	
+}

+ 3 - 3
examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/ExamStudentImportCleanTask.java

@@ -19,13 +19,13 @@ import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
 import cn.com.qmth.examcloud.commons.util.PathUtil;
-import cn.com.qmth.examcloud.task.base.AbstractTask;
-import cn.com.qmth.examcloud.task.base.ScheduleJob;
-import cn.com.qmth.examcloud.task.base.TaskTracker;
 import cn.com.qmth.examcloud.task.dao.ExamStudentImportRepo;
 import cn.com.qmth.examcloud.task.dao.ExamStudentTempRepo;
 import cn.com.qmth.examcloud.task.dao.entity.ExamStudentImportEntity;
 import cn.com.qmth.examcloud.web.config.SystemConfig;
+import cn.com.qmth.examcloud.web.task.AbstractTask;
+import cn.com.qmth.examcloud.web.task.ScheduleJob;
+import cn.com.qmth.examcloud.web.task.TaskTracker;
 
 /**
  * 考生导入-数据清理

+ 3 - 3
examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/ExamStudentImportDataProcessingTask.java

@@ -33,15 +33,15 @@ import cn.com.qmth.examcloud.core.basic.api.response.SaveStudentResp;
 import cn.com.qmth.examcloud.examwork.api.ExamCloudService;
 import cn.com.qmth.examcloud.examwork.api.ExamStudentCloudService;
 import cn.com.qmth.examcloud.examwork.api.request.SaveExamStudentReq;
-import cn.com.qmth.examcloud.task.base.AbstractTask;
-import cn.com.qmth.examcloud.task.base.ScheduleJob;
-import cn.com.qmth.examcloud.task.base.TaskTracker;
 import cn.com.qmth.examcloud.task.dao.ExamStudentImportRepo;
 import cn.com.qmth.examcloud.task.dao.ExamStudentTempRepo;
 import cn.com.qmth.examcloud.task.dao.entity.ExamStudentImportEntity;
 import cn.com.qmth.examcloud.task.dao.entity.ExamStudentTempEntity;
 import cn.com.qmth.examcloud.task.dao.enums.ExamStudentImportStatus;
 import cn.com.qmth.examcloud.web.config.SystemConfig;
+import cn.com.qmth.examcloud.web.task.AbstractTask;
+import cn.com.qmth.examcloud.web.task.ScheduleJob;
+import cn.com.qmth.examcloud.web.task.TaskTracker;
 
 /**
  * 考生导入-文件解析

+ 3 - 3
examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/ExamStudentImportParsingFileTask.java

@@ -21,15 +21,15 @@ import com.google.common.collect.Sets;
 
 import cn.com.qmth.examcloud.commons.helpers.poi.ExcelReader;
 import cn.com.qmth.examcloud.commons.util.PathUtil;
-import cn.com.qmth.examcloud.task.base.AbstractTask;
-import cn.com.qmth.examcloud.task.base.ScheduleJob;
-import cn.com.qmth.examcloud.task.base.TaskTracker;
 import cn.com.qmth.examcloud.task.dao.ExamStudentImportRepo;
 import cn.com.qmth.examcloud.task.dao.ExamStudentTempRepo;
 import cn.com.qmth.examcloud.task.dao.entity.ExamStudentImportEntity;
 import cn.com.qmth.examcloud.task.dao.entity.ExamStudentTempEntity;
 import cn.com.qmth.examcloud.task.dao.enums.ExamStudentImportStatus;
 import cn.com.qmth.examcloud.web.config.SystemConfig;
+import cn.com.qmth.examcloud.web.task.AbstractTask;
+import cn.com.qmth.examcloud.web.task.ScheduleJob;
+import cn.com.qmth.examcloud.web.task.TaskTracker;
 
 /**
  * 考生导入-文件解析

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

@@ -4,9 +4,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import cn.com.qmth.examcloud.core.oe.student.api.OeStudentExamRecordCloudService;
-import cn.com.qmth.examcloud.task.base.AbstractTask;
-import cn.com.qmth.examcloud.task.base.ScheduleJob;
-import cn.com.qmth.examcloud.task.base.TaskTracker;
+import cn.com.qmth.examcloud.web.task.AbstractTask;
+import cn.com.qmth.examcloud.web.task.ScheduleJob;
+import cn.com.qmth.examcloud.web.task.TaskTracker;
 
 /**
  * 

+ 3 - 3
examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/OeScorePushTask.java

@@ -4,9 +4,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import cn.com.qmth.examcloud.core.oe.admin.api.OeAdminScorePushCloudService;
-import cn.com.qmth.examcloud.task.base.AbstractTask;
-import cn.com.qmth.examcloud.task.base.ScheduleJob;
-import cn.com.qmth.examcloud.task.base.TaskTracker;
+import cn.com.qmth.examcloud.web.task.AbstractTask;
+import cn.com.qmth.examcloud.web.task.ScheduleJob;
+import cn.com.qmth.examcloud.web.task.TaskTracker;
 
 /**
  * 

+ 3 - 3
examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/ProcessingExamCaptureQueueTask.java

@@ -4,9 +4,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import cn.com.qmth.examcloud.core.oe.student.face.api.ExamCaptureQueueCloudService;
-import cn.com.qmth.examcloud.task.base.AbstractTask;
-import cn.com.qmth.examcloud.task.base.ScheduleJob;
-import cn.com.qmth.examcloud.task.base.TaskTracker;
+import cn.com.qmth.examcloud.web.task.AbstractTask;
+import cn.com.qmth.examcloud.web.task.ScheduleJob;
+import cn.com.qmth.examcloud.web.task.TaskTracker;
 
 /**
  * 

+ 55 - 55
examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/TaskTraceCleanTask.java

@@ -1,55 +1,55 @@
-package cn.com.qmth.examcloud.task.service.job;
-
-import java.util.Calendar;
-import java.util.Date;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import cn.com.qmth.examcloud.task.base.AbstractTask;
-import cn.com.qmth.examcloud.task.base.ScheduleJob;
-import cn.com.qmth.examcloud.task.base.TaskTracker;
-import cn.com.qmth.examcloud.task.dao.TaskTraceRepo;
-
-/**
- * 任务跟踪记录清理
- *
- * @author WANGWEI
- * @date 2018年11月7日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-@Component("taskTraceCleanTask")
-public class TaskTraceCleanTask extends AbstractTask {
-
-	@Autowired
-	TaskTracker TaskTracker;
-
-	@Autowired
-	TaskTraceRepo taskTraceRepo;
-
-	@Override
-	public void run(ScheduleJob scheduleJob) throws Exception {
-		int amount = 2;
-		try {
-			amount = Integer.parseInt(scheduleJob.getExt1());
-		} catch (Exception e) {
-			// ignore
-		}
-
-		if (1 > amount || amount > 10) {
-			amount = 2;
-		}
-
-		// 清理过去amount天前的数据
-		Calendar c = Calendar.getInstance();
-		c.setTime(new Date());
-		c.add(Calendar.DATE, 0 - amount);
-		Date d = c.getTime();
-		taskTraceRepo.deleteByCreationTimeLessThan(d);
-	}
-
-	@Override
-	public TaskTracker getTaskTracker() {
-		return TaskTracker;
-	}
-}
+package cn.com.qmth.examcloud.task.service.job;
+
+import java.util.Calendar;
+import java.util.Date;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import cn.com.qmth.examcloud.task.dao.TaskTraceRepo;
+import cn.com.qmth.examcloud.web.task.AbstractTask;
+import cn.com.qmth.examcloud.web.task.ScheduleJob;
+import cn.com.qmth.examcloud.web.task.TaskTracker;
+
+/**
+ * 任务跟踪记录清理
+ *
+ * @author WANGWEI
+ * @date 2018年11月7日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+@Component("taskTraceCleanTask")
+public class TaskTraceCleanTask extends AbstractTask {
+
+	@Autowired
+	TaskTracker TaskTracker;
+
+	@Autowired
+	TaskTraceRepo taskTraceRepo;
+
+	@Override
+	public void run(ScheduleJob scheduleJob) throws Exception {
+		int amount = 2;
+		try {
+			amount = Integer.parseInt(scheduleJob.getExt1());
+		} catch (Exception e) {
+			// ignore
+		}
+
+		if (1 > amount || amount > 10) {
+			amount = 2;
+		}
+
+		// 清理过去amount天前的数据
+		Calendar c = Calendar.getInstance();
+		c.setTime(new Date());
+		c.add(Calendar.DATE, 0 - amount);
+		Date d = c.getTime();
+		taskTraceRepo.deleteByCreationTimeLessThan(d);
+	}
+
+	@Override
+	public TaskTracker getTaskTracker() {
+		return TaskTracker;
+	}
+}

+ 2 - 2
examcloud-task-starter/src/main/java/cn/com/qmth/examcloud/task/starter/config/JobsStartup.java

@@ -14,11 +14,11 @@ import org.springframework.stereotype.Component;
 
 import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
 import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
-import cn.com.qmth.examcloud.task.base.QuartzManager;
-import cn.com.qmth.examcloud.task.base.ScheduleJob;
 import cn.com.qmth.examcloud.task.dao.ScheduleJobRepo;
 import cn.com.qmth.examcloud.task.dao.entity.ScheduleJobEntity;
 import cn.com.qmth.examcloud.web.bootstrap.PropertyHolder;
+import cn.com.qmth.examcloud.web.task.QuartzManager;
+import cn.com.qmth.examcloud.web.task.ScheduleJob;
 
 /**
  * 类注释