1 说明

jeeplus对定时任务进行了深度封装,开发定时任务极其简单,只需要继承com.jeeplus.modules.monitor.task.Task类,即可实现在页面灵活的配置定时任务。

2.编写定时任务类

@DisallowConcurrentExecution  
public class TestTask extends Task{

	@Override
	public void run() {
		System.out.println("这是测试任务TestTask。");
		
	}

}

定义一个类,继承Task, 需要执行的动作,定义在Run方法中。

3.在页面配置定时任务。

任务类:请输入完整的类名。 定时规则:请填写cron表达式。 通知用户:在定时任务触发时选择给哪些人发送页面消息提示。(采用websocket推送,无需刷新页面)

4 定时任务功能

可以启动,停止,执行一次等。

5 定时任务注入bean。

定时任务类不被spring容器管理,所以不能通过AutoWired的方式注入service等bean。 但是可以在方法体中,通过以下方法获取。

public class TestTask extends Task{

	@Override
	public void run() {
		TestService testService = SpringContextHolder.getBean(TestService.class);
		testService.save()....
		
	}

}


因为定时任务线程和request无关,因此在定时任务调用的方法中不能获取session相关信息,所以不能访问当前用户和权限等信息(例如:UserUtils.getUser()),如果报权限相关的错误,说明你尝试调用了和session有关的方法。