2014-06-09 69 views
-3

我們目前使用org.springframework.scheduling.quartz.SchedulerFactoryBean和org.springframework.scheduling.quartz.CronTriggerBean來實現特定cronExpressions的作業調度,現在我們需要觸發一些與JMS類似的後臺進程。使用Quartz調度程序運行背景任務

我正在尋找使用石英調度程序的選項,我可以將任務作爲SchedulerFactoryBean(不指定cronexpression)中的作業添加並從Java類調用它嗎? 需要幫助以探索此選項。在此先感謝

感謝您的答覆。我曾嘗試這個選項
這是春天的XML配置

<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
<property name="triggers"> 
<list> 
    <ref bean="TEST_SCHEDULER" /> 
</list> 
</property> 
<property name="autoStartup"><value>true</value></property> 
</bean> 

<bean id="TEST_SCHEDULER" class="org.springframework.scheduling.quartz.CronTriggerBean"> 
    <property name="jobDetail" ref="IN_TEST_SCHEDULER" /> 
    <property name="cronExpression"><value>"00 00 00 ? * MON-FRI"</value></property> 
</bean> 
<bean name="IN_TEST_SCHEDULER" class="org.springframework.scheduling.quartz.JobDetailBean"> 
    <property name="jobClass" value="com.TestScheduler" /> 
    <property name="jobDataAsMap"> 
     <map> 
      <entry key="timeout" value="20" /> 
     </map> 
    </property> 
</bean> 

調用這些語句從Java類

SchedulerFactoryBean schedulerFactory = new SchedulerFactoryBean(); 
Scheduler scheduler = schedulerFactory.getScheduler(); //scheduler is null here .. 
scheduler.triggerJob(jobName, jobGroup); 

調度爲空,因此無法觸發任務..

回答

0

得到了解決探索幾個網站和張貼以防萬一有人像我查找它在未來:)

WebApplicationContext springCtx = WebApplicationContextUtils 
       .getWebApplicationContext(getServletContext()); 
     scheduler = (Scheduler) springCtx.getBean("scheduler"); 
scheduler.triggerJob("IN_TEST_SCHEDULER", "DEFAULT"); 

在此之後會觸發所需的工作

0

org.springframework.scheduling.quartz.SchedulerFactoryBean bean注入你的班級。 在這個bean上調用getScheduler()方法來檢索調度器實例。使用調度程序添加額外的觸發器(簡單,cron等)爲您的期望的工作。

+0

感謝您的答覆。我確實嘗試了這個選項,但它沒有工作,並且編輯了我的問題。謝謝您的幫助 – Harish2k22

相關問題