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();
    		}
    	}
    
    }
    

      

  • 相关阅读:
    C语言函数sscanf()的用法(转)
    GDB基本命令(整合)(转)
    单元命中率与字节命中率
    rpm安装找不到.so库文件(linux动态库连接的相关知识)(转)
    Linux下的tar压缩解压缩命令详解(转)
    Linux系统如何查看版本信息
    Linux /bin, /sbin, /usr/bin, /usr/sbin 区别(转)
    rsync问题-connection refused(111)、Unknown module
    转: 浅析Fusion-IO和Intel SSD
    转: 从0到1的电商架构应该怎么做?
  • 原文地址:https://www.cnblogs.com/GotoJava/p/6093565.html
Copyright © 2011-2022 走看看