码迷,mamicode.com
首页 > 其他好文 > 详细

quartz 调度

时间:2017-12-13 20:29:46      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:ble   artifact   cells   .net   targe   method   obj   bsp   ica   

1、POI文件中导入包
     <dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>1.8.5</version>
<exclusions>
<exclusion>
<artifactId>slf4j-api</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
  </dependency>
2、spring.xml 中配置
          《 jobtaskA  为 jobName》
          <bean id="jobtaskA" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  <property name="targetObject" ref="automaticAssignQuartzJob"/>
  <property name="targetMethod" value="automaticAssignTask"/>
  </bean>
  <bean id="doTimeA" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
  <property name="jobDetail" ref="jobtaskA"/>
  <property name="startDelay" value="0"/><!-- 启动即开始执行 -->
  <property name="cronExpression" value="* * * ? * *" /><!-- 不间断执行 -->
  </bean>
 
<bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  <property name="triggers">
  <list>
  <ref bean="doTimeA"/>
  </list>
  </property>
  </bean>
3、service实现类中
    例如: @Service("automaticAssignQuartzJob")
                 方法:public void automaticAssignTask();  //实现类中执行方法
4、若中途需要停止该任务一段时间
          Scheduler scheduler = schedulerFactoryBean.getScheduler();
scheduler.pauseJob("jobtaskA", Scheduler.DEFAULT_GROUP); //暂停
Thread.sleep(15*60*1000); //暂停15分钟后恢复
scheduler.resumeJob("jobtaskA", Scheduler.DEFAULT_GROUP);//恢复
注:(1). schedulerFactoryBean 是通过spring注解初始化的
        即:@Autowired
                private SchedulerFactoryBean schedulerFactoryBean;
       (2). Scheduler.DEFAULT_GROUP是默认的分组名,也可以在spring中设定分组名
          例如:<bean id="myTrigger"  class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> 
  <property name="name" value="work_default_name"/>
  <property name="group" value="work_default"/>
  <property name="jobDetail">
         <ref bean="jobDetail" />
  </property>
  <property name="cronExpression">
  <value>0/5 * * * * ?</value>
  </property>
</bean>
(3).不能直接用 Thread.sleep(15*60*1000); 停止某一任务,这样会把项目中所有在执行的任务都停止
5、任务的暂停、恢复等方法可参考:http://blog.csdn.net/xpsharp/article/details/19289797
 

quartz 调度

标签:ble   artifact   cells   .net   targe   method   obj   bsp   ica   

原文地址:http://www.cnblogs.com/mymission/p/8034185.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!