Any relation between Quartz API and Joda Time API?

2020-06-15 05:57发布

问题:

Is it possible to create a date in JodaTime and then make Quartz schedule the job using the JodaTime object? Can we give a Period jodaPeriod to Quartz API in order to run a task for a particular period in a day?

Are the two APIs related and/or compatible in any way?

回答1:

The AxonFramework has a QuartzEventScheduler which looks like it does what you want.

Here's the downlaod page and it's under the Apache 2.0 license.



回答2:

Quartz provides a pretty comprehensive API that you could extend anyway you wanted.
The hook you would need to create would be against the Trigger interface, I've created one before but not using Joda time.

From the sounds of your question if you want to create a job that runs for a particular period of the day you could also just try using the CronTrigger. For example to run every minute between 9am and 11am you could do

* 9-10 * * *

Obviously Joda makes it much easier to configure but your sysadmins respect you more for cron...



回答3:

I've started to use Joda Time in newer parts of my company's app and I've found it easier to link to the legacy parts (including Quartz scheduling) by converting the Joda Time object back to java.util.Date which the older parts are still expecting. I hope this helps.



回答4:

TriggerBuilder has a snippet of how to schedule a job by hand:

JobDetail job = newJob(MyJob.class)
         .withIdentity("myJob")
         .build();

Trigger trigger = newTrigger() 
         .withIdentity(triggerKey("myTrigger", "myTriggerGroup"))
         .withSchedule(simpleSchedule()
             .withIntervalInHours(1)
             .repeatForever())
         .startAt(futureDate(10, MINUTES))
         .build();

scheduler.scheduleJob(job, trigger);

You will have to do some conversion work for the startAt() and the withIntervalInHours()...you get the drift