zoukankan      html  css  js  c++  java
  • Spring定时任务Quartz配置之手动设置

    一 配置xml如下:

        <!-- 定时任务配置 -->
        <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="true">
            <!-- <property name="triggers">
                <list>
                    <ref bean="t1" />
                </list>
            </property> -->
        </bean>


    <!-- 配置作业类JobDetailBean -->
        <bean id="job1" class="org.springframework.scheduling.quartz.JobDetailBean">
            <property name="jobClass" value="test.Job1"></property>
            <property name="jobDataAsMap">
                <map>
                    <entry key="timeout" value="0"></entry>
                </map>
            </property>
        </bean>
        
        <!-- 配置作业调度的触发方式(触发器) -->
        <!--  第二种CronTriggerBean,支持到指定时间运行一次,如每天12:00运行一次等。 -->
    <!--     <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
            <property name="jobDetail" ref="job1" />  
            <property name="cronExpression" value="0 0 12 * * ?" />
        </bean>  -->
        
        <!-- 第一种SimpleTriggerBean,只支持按照一定频度调用任务,如每隔30分钟运行一次 -->
        <bean id="cronTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">  
            <property name="jobDetail" ref="job1" />  
            <property name="startDelay" value="0" /><!-- 调度工厂实例化后,经过0秒开始执行调度 -->  
            <property name="repeatInterval" value="2000" /><!-- 每2秒调度一次 -->  
        </bean> 

    二 手动获取scheduler调度对象,触发SimpleTriggerBean对象,和作业类JobDetailBean对象

    public class TestJob {
    	public static  QuarzJobHelper jobHelper;
    	/**任务调度对象*/
    	private static Scheduler scheduler;
    	static AbstractApplicationContext  context = new ClassPathXmlApplicationContext("classpath:/spring/applicationContext.xml");
    	static{
    		jobHelper = (QuarzJobHelper)context.getBean("jobHelper");
    		/**任务调度对象*/
    		scheduler = (Scheduler)context.getBean("scheduler");
    	}
    	public static void main(String[] args) {
    		//从spring中获取trigger
    		Trigger trigger = (Trigger)context.getBean("cronTrigger");
    		//获取job作业类
    		JobDetail detail = (JobDetail)context.getBean("job1");
    		try {
    			//新增job
    			scheduler.scheduleJob(detail, trigger);
    			System.out.println(detail.getName()+","+detail.getGroup());
    			Thread.sleep(9000);
    			//删除job
    			scheduler.deleteJob(detail.getName(), detail.getGroup());
    			//定时任务销毁
    			scheduler.shutdown();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    
    }
    

      

  • 相关阅读:
    SGU 271 Book Pile (双端队列)
    POJ 3110 Jenny's First Exam (贪心)
    HDU 4310 Hero (贪心)
    ZOJ 2132 The Most Frequent Number (贪心)
    POJ 3388 Japanese Puzzle (二分)
    UVaLive 4628 Jack's socks (贪心)
    POJ 2433 Landscaping (贪心)
    CodeForces 946D Timetable (DP)
    Android Studio教程从入门到精通
    Android Tips – 填坑手册
  • 原文地址:https://www.cnblogs.com/GotoJava/p/6093565.html
Copyright © 2011-2022 走看看