Hi,

Is it possible to reschedule a quartz trigger? I have defined my Simple
trigger as follows

XBEAN:
======
<quartz:endpoint service="esb:moeQuartzScheduler" 
                endpoint="moeqrtzSchEndpoint" 
                targetService="moeextract:moeExtractSvc">
                        
           <quartz:trigger>
             <quartz:simple repeatCount="0" repeatInterval="10000" />
           </quartz:trigger>
           
           <quartz:marshaler>
             <bean class="com.esb.quartz.scheduler.CustomQuartzMarshaler" />
           </quartz:marshaler>
        
</quartz:endpoint>

In my custom marshaller I extended extends DefaultQuartzMarshaler and added
the following code to reschedule the job, but it doesnot work and shows the
'nextFireTime' as NULL.

Am I doing it right? Can it be done in servicemix?

CODE:
======
public void populateNormalizedMessage(NormalizedMessage message,
JobExecutionContext context) throws JobExecutionException,
MessagingException {
        super.populateNormalizedMessage(message, context);
        String fireTime = "<JobFireTime>" + context.getScheduledFireTime() +
"</JobFireTime>";
        try {
                //context.getScheduler().shutdown();
                
                Scheduler sched = context.getScheduler();
                //Scheduler sched = StdSchedulerFactory.getDefaultScheduler();
        
                Date startDate = new java.util.Date();
                long runEveryInMilliseconds = 900*1000;  // every 15 minutes
                String jobName = context.getTrigger().getFullJobName();
        
                //SimpleTrigger trigger = new SimpleTrigger(jobName,
Scheduler.DEFAULT_GROUP, startDate, null, SimpleTrigger.REPEAT_INDEFINITELY,
runEveryInMilliseconds);

                SimpleTrigger trigger = (SimpleTrigger)context.getTrigger();
                trigger.setGroup(Scheduler.DEFAULT_GROUP);
                trigger.setStartTime(startDate);
                trigger.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY);
                trigger.setRepeatInterval(runEveryInMilliseconds);
                trigger.setJobName(jobName);
                trigger.setJobGroup(Scheduler.DEFAULT_GROUP);
                sched.rescheduleJob(jobName, Scheduler.DEFAULT_GROUP, trigger);
        } 
        catch (SchedulerException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
        }       
        message.setContent(new StringSource(fireTime));
}


CONSOLE:
========

14:59:04,283 | DEBUG | DefaultQuartzScheduler_Worker-7 | QuartzComponent        
 
| rvicemix.quartz.QuartzEndpoint  134 | Firing Quartz Job with context:
JobExecutionContext: trigger: 'DEFAULT.(inner bean) job:
DEFAULT.{http://com.mycompany.esb}moeQuartzScheduler:moeqrtzSchEndpoint
fireTime: 'Thu Oct 30 14:59:04 CDT 2008 scheduledFireTime: Thu Oct 30
14:59:02 CDT 2008 previousFireTime: 'null nextFireTime: null isRecovering:
false refireCount: 0


-- 
View this message in context: 
http://www.nabble.com/Re-scheduling-a-servicemix-quartz-trigger-tp20255573p20255573.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to