import java.util.Date;
import org.apache.log4j.Logger;
import org.quartz.JobDataMap;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleTrigger;
import org.quartz.Trigger;
public class OrderCancelJobScheduler
{
SchedulerFactory schedFact;
Scheduler sched;
OrderManager orderManager;
public void init() throws SchedulerException
{
logger.info(">>> Entering init()..");
if(schedFact == null) schedFact = new org.quartz.impl.StdSchedulerFactory();
if(sched == null) sched = schedFact.getScheduler();
sched.start();
logger.info("<<< Leaving init().");
}
public void cancelOrder30SecondsLater(String orderId) throws SchedulerException
{
logger.info(">>> Entering cancelOrder30SecondsLater( " + orderId + ")...");
JobDetail jobDetail = new JobDetail("CancelOrder" + System.currentTimeMillis(), null, OrderCancelJob.class);
JobDataMap jobDataMap = new JobDataMap();
jobDataMap.put("orderId", orderId);
jobDataMap.put("orderManager", orderManager);
jobDetail.setJobDataMap(jobDataMap);
Trigger trigger = getOneTimeTrigger();
sched.scheduleJob(jobDetail, trigger);
logger.info("<<< Leaving cancelOrder30SecondsLater(" + orderId + ").");
}
private Trigger getOneTimeTrigger()
{
long startTime = System.currentTimeMillis() + 30000L;
SimpleTrigger trigger = new SimpleTrigger("myTrigger", null, new Date(startTime), null, 0, 0L);
return trigger;
}
public void setOrderManager(OrderManager orderManager)
{
this.orderManager = orderManager;
}
}
分享到:
相关推荐
总结来说,Quartz Job的配置涉及到创建Job类、编写XML配置文件以及在代码中启动Scheduler。通过这种方式,你可以灵活地管理你的定时任务,并根据业务需求调整执行时间。对于旧版本的Quartz(如1.8.0),虽然可能缺少...
3. **Scheduler(调度器)**: Scheduler是Quartz的核心,负责管理所有的Job和Trigger,并根据Trigger的时间规则执行Job。 **使用quartz_jobs.xml配置文件** 在Quartz.NET 3.x中,虽然XML配置文件并不是默认的首选...
<description>This is a sample job <job-class>com.example.MyJobClass</job-class> </job> <name>CronTriggerForMyJob <group>DefaultTriggerGroup <job-name>MyJob</job-name> <job-group>...
本文档将基于 `Quartz_Scheduler_Example_Programs_and_Sample_Code.pdf` 版本 2.2.1,深入探讨其中的关键概念、示例程序以及样例代码,旨在帮助读者更好地理解和应用 Quartz Scheduler。 #### 关于 Quartz 示例...
3. **Scheduler**: Scheduler 是整个Quartz系统的核心,它负责管理和执行Job。你可以通过`SchedulerFactory`获取Scheduler实例,然后使用`scheduleJob()`方法将Job与Trigger关联起来。 4. **配置**: Quartz 配置...
http://www.quartz-scheduler.org/xml/job_scheduling_data_2_0.xsd" version="2.0"> <processing-directives ignoreDuplicates="false" ignoreMisfires="true"/> <job> <name>TestJob <group>Default ...