quartz实现定时的demo,可修改定时策略-少年壮志莫言愁-iteye技术网站

quartz实现定时的demo,可修改定时策略-少年壮志莫言愁-iteye技术网站
2011年06月01日
   来源于网络 http://www.blogjava.net/xiaodaoxiaodao/articles/10 3437.html
  给出完整的类和配置文件,除了一般是Spring 包外,另外需要下一个包spring-context-1.15.jar包,可在http://repo1.maven.org/maven2/ 找。
  下面的内容拼到一个webProject里面,发布起来就可以看到效果。
  1.Action
  public class ScheduleInfoAction {
  public void reScheduleJob() throws SchedulerException, ParseException {
  // 运行时可通过动态注入的scheduler得到trigger
  CronTriggerBean trigger = (CronTriggerBean) scheduler.getTrigger(
  "cronTrigger", Scheduler.DEFAULT_GROUP);
  String dbCronExpression = getCronExpressionFromDB();
  String originConExpression = trigger.getCronExpression();
  // 判断从DB中取得的任务时间(dbCronExpression)和现在的quartz线程中的任务时间(originConExpression)是否相等
  // 如果相等,则表示用户并没有重新设定数据库中的任务时间,这种情况不需要重新rescheduleJob
  if(!originConExpression.equalsIgnoreCase(dbCronExp ression)){
  trigger.setCronExpression(dbCronExpression); //执行更新操作
  scheduler.rescheduleJob("cronTrigger", Scheduler.DEFAULT_GROUP, trigger);
  }
  // 下面是具体的job内容,可自行设置
  executeJobDetail();
  }
  private String getCronExpressionFromDB(){
  String sql="from ScheduleInfo scheduleInfo where 1=1 ";
  sql=sql+" and scheduleInfo.infoId = '"+"1" + "'";
  List scheduleList = scheduleInfoManager.queryScheduleInListBySql(sql);
  ScheduleInfo scheduleInfo = (ScheduleInfo)scheduleList.get(0);
  String dbCronExpression = scheduleInfo.getCronExpression();
  return dbCronExpression;
  }
  private void executeJobDetail(){
  System.out.println("schedule action time:"+System.currentTimeMillis());
  }
  private Scheduler scheduler;
  // 设值注入,通过setter方法传入被调用者的实例scheduler
  public void setScheduler(Scheduler scheduler) {
  this.scheduler = scheduler;
  }
  private ScheduleInfoManager scheduleInfoManager;
  // 设值注入,通过setter方法传入被调用者的实例scheduleInfoManager
  public void setScheduleInfoManager(ScheduleInfoManager scheduleInfoManager){
  this.scheduleInfoManager = scheduleInfoManager;
  }
  }
  2.Bean
  public class ScheduleInfo {
  String cronExpression="0/10 * * * * ?";
  public void setCronExpression(String cronExpression) {
  this.cronExpression = cronExpression;
  }
  public String getCronExpression(){
  return this.cronExpression ;
  }
  }
  3.Service
  public class ScheduleInfoManager {
  long i =System.currentTimeMillis();
  int j=0;
  List lis=new ArrayList();
  ScheduleInfo s=new ScheduleInfo();
  public List queryScheduleInListBySql(String sql){
  if(System.currentTimeMillis()-i
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  0/10 * * * * ?
  -->
  
  
  
  
  
  
  
  
  
  
  
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值