zoukankan      html  css  js  c++  java
  • quartz 调度

    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
     
  • 相关阅读:
    如何用Spring Security OAuth2 实现登录互踢,面试必学
    你确定Java注释不会被执行吗?80%的人都不知道
    常见Java性能问题一招帮你解决,80%的人都不知道
    Spring中的反射与反射的原理,案例详解
    10大Java方向最热门的开源项目,高薪必学
    2020最新Python学习常见十大问题总结
    Java源码系列-LinkedHashMap,高薪面试必学
    Java8的Lambda表达式你了解吗?80%的都不知道
    分块矩阵
    矩阵--逆矩阵和伴随矩阵
  • 原文地址:https://www.cnblogs.com/mymission/p/8034185.html
Copyright © 2011-2022 走看看