scheduler 的使用

1:scheduler 自动调配任务的使用:
开发组件,SSH。 我这里用的是SSH,当然也可用其他的方法
2: 首先应该建立一个schedule 来管理我们使用的任务时间等

public class BidBoardFinalizeScheduler {
// Static Logger variable
private static final Logger logger = Logger
.getLogger(BidBoardFinalizeScheduler.class.getName());

public BidBoardFinalizeScheduler() throws BBSystemException,
BBSystemException {
scheduleFinalizeJob();
}

private void scheduleFinalizeJob() throws BBSystemException {

// fields declaration
SchedulerFactory schedulerFactory = null;
Scheduler scheduler = null;
JobDetail jobDetail = null;
SimpleTrigger simpleTrigger = null;
try {
schedulerFactory = new StdSchedulerFactory();
scheduler = schedulerFactory.getScheduler();
jobDetail = new JobDetail(BBCommonConstants.Finalize,
Scheduler.DEFAULT_GROUP, BidboradFinalizeJob.class);
simpleTrigger = new SimpleTrigger("myFinalizetrigger",
Scheduler.DEFAULT_GROUP, 5000, 90000); // 15minutes
try {
scheduler.scheduleJob(jobDetail, simpleTrigger);
} catch (SchedulerException e) {
logger.debug("Exception occured in invokeJob ");
throw BBUtil.getBBSystemException(e,
BBMessageConstants.ERROR_WHILE_SCHEDULING_JOB);
}
scheduler.start();
} catch (BBSystemException e) {
logger.error("scheduler could not be intialized");
throw BBUtil.getBBSystemException(BBMessageConstants.OBJECTS_NULL);
} catch (Exception exception) {
logger.debug("Error while Initializing Scheduler");
}
}
}

3: 我们应该接着写一个job类文件,在这个类里我们调用DAO 以及 SERVICE层,就是我们要执行的功能, 而且这个类我们必须要实现job类的一个接口,而且实现它的execute方法。

public class BidboradFinalizeJob implements StatefulJob {


public void execute(JobExecutionContext arg0) {

// variable declaration
CommonService commonService = null;

try {
commonService = getBidBoardServiceFactory().getCommonService();
commonService.bidBoardFinalize();
} catch (BBSystemException e) {
e.printStackTrace();
}
}


public static synchronized BidBoardServiceFactory getBidBoardServiceFactory()
throws BBSystemException {
BidBoardServiceFactory bbServiceFactory = null;
if (null == bbServiceFactory) {

bbServiceFactory = (BidBoardServiceFactory) SpringContextSupport
.getBean(BBCommonConstants.BIDBOARDSERVICE_FACTORY);

}
return bbServiceFactory;

}
}

4: 等配置完这些之后,我们只需要在bean.xml 的配置文件中,加入我们要实例化的这个即可
如何:  <bean id="bidBoardFializeScheduler"
class="com.fritolay.bidboard.service.bidsheet.BidBoardFinalizeScheduler" singleton ="true">
</bean>

猜你喜欢

转载自rainnguy.iteye.com/blog/1037167