Skip Navigation Links



Spring Managed DI for Quartz Jobs With Dependencies

Author : Nitin Tripathi      Blog :ZERO      Date: 4/1/2012 8:26:00 AM


Problem Statement:

Quartz scheduler (v 2.1.3) triggers a job which has its own dependencies which needs to be managed using Spring (3.1.1.RELEASE+)

Solution:

The Job

public class HttpDealsDownloadJob implements Job {
// NO DEPENDENCIES HERE
  @Override
  public void execute(final JobExecutionContext context)
      throws JobExecutionException {
    final JobDataMap jdm = context.getJobDetail().getJobDataMap();
// EXTRACT YOUR DEPENDENCY FROM JOB DATA MAP
    final HttpFileDownloader delegate = (HttpFileDownloader) jdm
        .get("job.delegate");
    delegate.apply(context.getJobDetail().getJobDataMap().getWrappedMap());
  }

}

Spring Context

<bean id="mySchedulerFactoryBean"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="configLocation" value="file:quartz.properties" />
<property name="jobFactory" ref="springBeanJobFactory" />
<property name="triggers">
<list>
<ref bean="myCronTriggerFactoryBean" />
</list>
</property>
</bean>
<bean id="springBeanJobFactory"
class="org.springframework.scheduling.quartz.SpringBeanJobFactory" />
<bean id="myCronTriggerFactoryBean"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="cronExpression" value="${my.cron.expression}" />
<property name="jobDetail" ref="myJobDetailFactoryBean" />
</bean>
<bean id="myJobDetailFactoryBean"
class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
<property name="jobDataAsMap">
<map>
<entry key="source.url" value="${my.deals.url}" />
<entry key="job.delegate" value-ref="httpFileDownloader" />
</map>
</property>
<property name="jobClass"
value="org.zero.gb.acequia.scheduler.HttpDealsDownloadJob" />
<!-- INJECT APPLICATION CONTEXT -->
<property name="applicationContextJobDataKey" value="appicationContext" />
</bean>
<!-- THIS IS THE CLASS WHICH ACTUALLY DOES THE WORK -->
<bean id="httpFileDownloader" class="org.zero.acequia.integration.http.HttpFileDownloader">
             <!-- your dependencies here -->
     </bean>

Bloggers

active bloggers in the last 24 hrs. Number shown in the bracket represents number of posts published in past 24 hrs,


other authors(66)

Vikram Karve(4)

BUTTERFLIES OF TIME(3)

Ramanujam Sridhar(3)

bobbysing(2)

R.D. Bhalekar(2)

Sakshi Garg(2)

Venkataramanan Ramasethu(2)

Aarthi(1)

AbhiLaSH RuHeLa(1)

Abi(1)

Aditi(1)

Akhilesh(1)

Anil(1)

Anil P(1)

Ankur(1)

anouradha bakshi(1)

Anu Lal(1)

Anu Varma(1)

Anubhav Sharma(1)

anupriya(1)

AS...(1)

ashok(1)

bdoza(1)

Bhagyashree(1)

Bharathy(1)

celestialrays(1)

chaoticplanner(1)

Deeps(1)

Dew(1)

Dinakarr(1)

Ekta khetan(1)

ephemeral desires(1)

Familycook(1)

Fidarose Isha(1)

Govind Kumar(1)

Hari Chandana P(1)

Harimohan(1)

harish p i(1)

I for an Eye(1)

Insignia(1)

J.A. Kumar(1)

Jabberwock(1)

Joshua S(1)

KALVA(1)

Kalyan P(1)

KK(1)

KParthasarathi(1)

Krishna Rao(1)

Madhaw Tiwari(1)

Mahima Kohli(1)

Maitreyee Bhattacharjee Chowdhury(1)

Meena Kannan(1)

Meher(1)

Mihir Govilkar(1)

Mr Rancorous(1)

MUNZ TDT(1)

Mythreyi(1)

Nanka(1)

Naresh Surampudi(1)

Nayna Kanabar(1)

Newsline Features and Press Agency, Agra - 282005 [U.P.](1)

Nidz(1)

Nik P(1)

Nikhil Sheth(1)

Nishant Chaturvedi(1)

Nivedita Thadani(1)

Nona(1)

Ordinary Gal(1)

palash ranjan khound(1)

parth joshi(1)

Phalgunn Maharishi(1)

pinksocks(1)

pixie(1)

Prabal(1)

Prahallad Panda(1)

Priya(1)

Raafay Awan(1)

rahul(1)

Raksha(1)

Rama Subramanian(1)

ravi dabas(1)

Reshmi Mahesh(1)

Richa Singh(1)

Ritcha(1)

RNA Corp(1)

Rohit Kaveeshwar(1)

RWABhagidari.blogspot.com(1)

Sandhya(1)

Sanjeev(1)

Santosh Bangar(1)

ScottGu(1)

Sharjeel(1)

shibu V(1)

Shinymist(1)

Shobhaa De(1)

Shrikant Lokhande(1)

Shriti(1)

Sriram Khé(1)

Srivalli(1)

Subha(1)

Suchismita(1)

Sushma Harish(1)

tikulicious(1)

Vashi Chandiramani(1)

Vasudev Ram(1)

Vasudha Rao(1)

Vatsala Dorai Rajan(1)

winnie(1)

अफ़लातून अफ़लू(1)

மதி (GS)(1)


garland of Languages of India
an amalgamation of the diversified traditions
gracefully presented with novelty
http://www.haaram.com