发表于: 2017-11-02 23:11:48

1 832


今天完成的事情:终于配对了maven  舜哥的代码完全不爆红了 然而金信的代码一片红

                       试了几个简单的quartz spring quartz

public class Test {
public static void main(String[] args) {
//1、创建JobDetial对象
       JobDetail jobDetail = new JobDetail();
       //设置工作项
       jobDetail.setJobClass(MyJob.class);
       jobDetail.setName("MyJob_1");
       jobDetail.setGroup("JobGroup_1");

       //2、创建Trigger对象
       SimpleTrigger strigger = new SimpleTrigger();
       strigger.setName("Trigger_1");
       strigger.setGroup("Trigger_Group_1");
       strigger.setStartTime(new Date());
       //设置重复停止时间,并销毁该Trigger对象
       java.util.Calendar c = java.util.Calendar.getInstance();
       c.setTimeInMillis(System.currentTimeMillis() + 7000 * 1L);
       strigger.setEndTime(c.getTime());
       strigger.setFireInstanceId("Trigger_1_id_001");
       //设置重复间隔时间3
       strigger.setRepeatInterval(1000 * 1L);
       //设置重复执行次数
       strigger.setRepeatCount(3);

       //3、创建Scheduler对象,并配置JobDetail和Trigger对象
       SchedulerFactory sf = new StdSchedulerFactory();
       Scheduler scheduler = null;
       try {
scheduler = sf.getScheduler();
           scheduler.scheduleJob(jobDetail, strigger);
           //4、并执行启动、关闭等操作
           scheduler.start();
           Thread.sleep(5000);
          scheduler.shutdown(true);
       } catch (SchedulerException e) {
e.printStackTrace();
       }
catch (InterruptedException e) {
e.printStackTrace();
       }

  <!-- 定义目标bean和bean中的方法 -->
   <bean id="SpringQtzJob" class="com.jnshu.SpringQtz"/>

   <bean id="SpringQtzJobMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
       <property name="targetObject"> <ref bean="SpringQtzJob"/></property>
       <property name="targetMethod">  <!-- 要执行的方法名称 --><value>execute</value></property>
   </bean>

   <!-- ======================== 调度触发器 ======================== -->
   <!-- 指定重复间隔的定时任务 -->
   <!-- 调度时间设置-->
   <!--<bean id="testTaskJobTrigger"
         class="org.springframework.scheduling.quartz.SimpleTriggerBean">
       <property name="jobDetail">
           <ref bean="SpringQtzJobMethod" />
       </property>
       &lt;!&ndash; 延时启动时间,单位ms &ndash;&gt;
       <property name="startDelay" value="1000"></property>
       &lt;!&ndash; 重复间隔时间,单位ms &ndash;&gt;
       <property name="repeatInterval" value="1000">
       </property>
   </bean>
-->

   <!-- 按周期执行的任务 -->
   <!-- 调度时间设置-->
   <!--  定义触发时间 -->

   <bean id="CronTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerBean">
       <property name="jobDetail" ref="SpringQtzJobMethod"></property>
       <property name="cronExpression" value=" 0 11 17 ? * *"></property>
     <!--  0 * 14 * *-->

     <!--  0 05 11 ? * *-->
   </bean>

   <!-- ======================== 调度工厂 ======================== -->
   <bean id="SpringJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
       <property name="triggers">
           <list>
               <ref bean="CronTriggerBean"/>
           </list>
       </property>

明天计划的事情:请假 
遇到的问题:maven的setting配完一片红 大概是私服哪里配错了 

                    我一直以为是 本地仓库 远程仓库 私服 才知道是本地 私服 远程

               只能直接替换setting文件 导入公司8g的包
收获:quatz spring quartz

Quartz的工作原理。
 
1、scheduler是一个计划调度器容器(总部),容器里面可以盛放众多的JobDetail和trigger,当容器启动后,里面的每个JobDetail都会根据trigger按部就班自动去执行。
 
2、JobDetail是一个可执行的工作,它本身可能是有状态的。
 
3、Trigger代表一个调度参数的配置,什么时候去调。
 
4、当JobDetail和Trigger在scheduler容器上注册后,形成了装配好的作业(JobDetail和T

Quartz与Spring的整合也非常简单,Spring提供一组Bean来支持:MethodInvokingJobDetailFactoryBean、SimpleTriggerBean、SchedulerFactoryBean,看看上面代码注入什么属性即可明白了。Spring会在Spring容器启动时候,启动Quartz容器。


返回列表 返回列表
评论

    分享到