在调度任务时,可以使用JobDataMap来传递集合数组:
JobDetail jobDetail = newJob(MyJob.class)
.withIdentity("myJob", "group1")
.usingJobData("myCollection", myCollection)
.build()
// 在任务中获取集合数组
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
JobDataMap dataMap = context.getJobDetail().getJobDataMap()
List<String>myCollection = (List<String>) dataMap.get("myCollection")
// do something with myCollection
}
在应用里经常都有用到在后台跑定时任务的需求。举个例子,比如需要在服务后台跑一个定时任务来进行非实时计算,清除临时数据、文件等。在本文里,3种不同的实现方法: 普通thread实现 TimerTask实现 ScheduledExecutorService实现