现有需求是,从数据库中取出执行任务的时间。
可能存在多条。
现在使用的是Spring注解的方式来执行任务调度!
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
* 我的时间任务测试类
* 类描述:
* @author 何祖文
* 创建时间:2014-5-26 下午4:30:27
*
*/
@Component("myTimeTestJob")
public class MyTimeTestService {
@Scheduled(cron = "0/3 * * * * ?")
public void job() {
System.out.println("任务进行中。。。");
}
}
问下如果我要执行时间为动态去数据读取的话,我该怎么弄呢?
求科普..........
--------------------
PS:急求!!!

------解决方案--------------------
简单点,用linux的crontab去调你的java程序算了,那个简单,支持修改的。
------解决方案--------------------
参考
------解决方案--------------------
这个还是用程序来写吧 ,别用注解了。
------解决方案--------------------
自己写了一个测试的
public static void main(String args[]) {
try {
SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory();
Scheduler sched = schedFact.getScheduler();
sched.start();
JobDetail jobDetail = new JobDetail("CronTirgger",Scheduler.DEFAULT_GROUP, CronTirgger.class);
jobDetail.getJobDataMap().put(" type ", " FULL ");
CronTrigger trigger = new CronTrigger("CronTirgger",Scheduler.DEFAULT_GROUP);
/**这里你可以写一个专门获取表达式的工具类 */
trigger.setCronExpression("0 40 8 * * ?");
sched.scheduleJob(jobDetail, trigger);
// sched.start();
} catch (Exception e) {
e.printStackTrace();
}
}
------解决方案--------------------
按理说这个肯定是正确的,动态设置,
trigger.setCronExpression(cronExpression);
scheduler.rescheduleJob("testTrigger", Scheduler.DEFAULT_GROUP, trigger);
你外面的是resetJob,会不会造成里面的rescheduleJob,导致死循环。
是否可以将时间距离设置大一点,然后debug下
------解决方案--------------------
这个版主很不错哦
------解决方案--------------------
原来我记得我做个一个项目,就是用lz这种方式。。客户在页面上可配置型执行job 的。。不过忘记怎么实现的了。。