Browse Source

定时任务添加返回值

master
[li_she] 4 years ago
parent
commit
74defc52b2
  1. 2
      src/main/java/com/gaotao/modules/job/entity/ScheduleJobLogEntity.java
  2. 3
      src/main/java/com/gaotao/modules/job/task/ITask.java
  3. 5
      src/main/java/com/gaotao/modules/job/task/TestTask.java
  4. 9
      src/main/java/com/gaotao/modules/job/utils/ScheduleJob.java

2
src/main/java/com/gaotao/modules/job/entity/ScheduleJobLogEntity.java

@ -62,4 +62,6 @@ public class ScheduleJobLogEntity implements Serializable {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private Date createTime;
private String errorMsg;
} }

3
src/main/java/com/gaotao/modules/job/task/ITask.java

@ -14,5 +14,6 @@ public interface ITask {
* *
* @param params 参数多参数使用JSON数据 * @param params 参数多参数使用JSON数据
*/ */
void run(String params);
String run(String params);
} }

5
src/main/java/com/gaotao/modules/job/task/TestTask.java

@ -17,9 +17,10 @@ import org.springframework.stereotype.Component;
public class TestTask implements ITask { public class TestTask implements ITask {
private Logger logger = LoggerFactory.getLogger(getClass()); private Logger logger = LoggerFactory.getLogger(getClass());
@Override
public void run(String params){
public String run(String params){
logger.debug("TestTask定时任务正在执行,参数为:{}", params); logger.debug("TestTask定时任务正在执行,参数为:{}", params);
return "执行结果";
} }
} }

9
src/main/java/com/gaotao/modules/job/utils/ScheduleJob.java

@ -15,12 +15,11 @@ import org.springframework.scheduling.quartz.QuartzJobBean;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* 定时任务 * 定时任务
*
*
*/ */
public class ScheduleJob extends QuartzJobBean { public class ScheduleJob extends QuartzJobBean {
private Logger logger = LoggerFactory.getLogger(getClass()); private Logger logger = LoggerFactory.getLogger(getClass());
@ -49,14 +48,14 @@ public class ScheduleJob extends QuartzJobBean {
Object target = SpringContextUtils.getBean(scheduleJob.getBeanName()); Object target = SpringContextUtils.getBean(scheduleJob.getBeanName());
Method method = target.getClass().getDeclaredMethod("run", String.class); Method method = target.getClass().getDeclaredMethod("run", String.class);
method.invoke(target, scheduleJob.getParams());
Object invoke = method.invoke(target, scheduleJob.getParams());
//任务执行总时长 //任务执行总时长
long times = System.currentTimeMillis() - startTime; long times = System.currentTimeMillis() - startTime;
log.setTimes((int) times); log.setTimes((int) times);
//任务状态 0成功 1失败 //任务状态 0成功 1失败
log.setStatus(0); log.setStatus(0);
log.setErrorMsg(invoke.toString());
logger.debug("任务执行完毕,任务ID:" + scheduleJob.getJobId() + " 总共耗时:" + times + "毫秒"); logger.debug("任务执行完毕,任务ID:" + scheduleJob.getJobId() + " 总共耗时:" + times + "毫秒");
} catch (Exception e) { } catch (Exception e) {
logger.error("任务执行失败,任务ID:" + scheduleJob.getJobId(), e); logger.error("任务执行失败,任务ID:" + scheduleJob.getJobId(), e);
@ -64,9 +63,9 @@ public class ScheduleJob extends QuartzJobBean {
//任务执行总时长 //任务执行总时长
long times = System.currentTimeMillis() - startTime; long times = System.currentTimeMillis() - startTime;
log.setTimes((int) times); log.setTimes((int) times);
//任务状态 0成功 1失败 //任务状态 0成功 1失败
log.setStatus(1); log.setStatus(1);
log.setErrorMsg(e.getMessage());
log.setError(StringUtils.substring(e.toString(), 0, 2000)); log.setError(StringUtils.substring(e.toString(), 0, 2000));
} finally { } finally {
scheduleJobLogService.save(log); scheduleJobLogService.save(log);

Loading…
Cancel
Save