3.7.1 定时任务功能 到底如何使用?例子不明白
3.7.1版本提供的 定时任务例子 service 注入为 null 代码中报错信息直接不打印 .请问 系统如何合理注入容器对象.?http://www.jeecg.org/static/image/smiley/default/shocked.gif
org.jeecgframework.web.system.sms.util.task.SmsSendTask
-->
public class SmsSendTask implements Job{
@Autowired
private TSSmsServiceI tSSmsService;注入为null
/*@Scheduled(cron="0 0/1 * * * ?")*/
public void run() {
long start = System.currentTimeMillis();
org.jeecgframework.core.util.LogUtil.info("===================推送消息定时任务开始===================");
try {
tSSmsService.send();
} catch (Exception e) {
//e.printStackTrace();
}
org.jeecgframework.core.util.LogUtil.info("===================推送消息定时任务结束===================");
long end = System.currentTimeMillis();
long times = end - start;
org.jeecgframework.core.util.LogUtil.info("总耗时"+times+"毫秒");
}
3.7.1 版本
定时任务 立即生效 有问题.
检查发现 点击立即生效之后 就是仅仅执行更新定时任务对象的操作而已.而已由于页面没有传 cron 表达式参数导致保存数据报错. .
具体实现:
org.jeecgframework.core.timer.DynamicTask.updateCronExpression(TSTimeTaskEntity)
public boolean updateCronExpression(TSTimeTaskEntity task) {
try {
String newExpression = task.getCronExpression(); // 此处获取的 newExpression 为NULL
task = timeTaskService.get(TSTimeTaskEntity.class, task.getId());
//任务运行中
if("1".equals(task.getIsStart())){
CronTriggerBean trigger = (CronTriggerBean)schedulerFactory.getTrigger("cron_" + task.getId(), Scheduler.DEFAULT_GROUP);
String originExpression = trigger.getCronExpression();
//检查运行中的任务触发规则是否与新规则一致
if (!originExpression.equalsIgnoreCase(newExpression)) {
trigger.setCronExpression(newExpression);
schedulerFactory.rescheduleJob("cron_" + task.getId(), Scheduler.DEFAULT_GROUP, trigger);
}
}
//检查数据库中的任务触发规则与新规则是否一致
if (!task.getCronExpression().equalsIgnoreCase(newExpression)) {
task.setCronExpression(newExpression);
timeTaskService.updateEntitie(task);// 执行 update 报错 . CronExpression 不能为NULL
}
return true;
页:
[1]