SchedulerFactory启动时无法读外部Properties

strawberryyu 2009-05-11 03:12:16
当前在做一个定时发邮件的项目.
在启动tomcat时,用timetask初始化schedulerFactory.
但在读配置之后.得到的schedule都为默认的名字.我想根据我给的那个id取得schedule.
但是当发布完成后 页面上新增一个schedule却是可以的.代码检查了 也没发现有什么问题.
希望有高手指点

//////正常保存时候存在id///////////////
// 新規状態
Properties props = new Properties();
props.put("org.quartz.scheduler.instanceName", mailDetailForm.getScheduleId());
props.put(StdSchedulerFactory.PROP_THREAD_POOL_CLASS,"org.quartz.simpl.SimpleThreadPool");
props.put("org.quartz.threadPool.threadCount", "1");

ImpSchedulerFactory newFactory = new ImpSchedulerFactory(Long
.valueOf(mailDetailForm.getScheduleId()));
newFactory.initialize(props);

ScheduleMail scheduleMail = this.getSchedule(newFactory.getId());
List<MailForm> sendAddressList = initSendMailList(newFactory
.getId());
// Retrieve a scheduler from schedule factory
Scheduler newScheduler = newFactory.getScheduler();


//////////////启动时run方法///////////

public class CheckSchMail extends TimerTask{

public static List<ImpSchedulerFactory> factoryList;

private SendMailService sendMailService;

@Autowired
public void setSendMailService(SendMailService sendMailService) {
this.sendMailService = sendMailService;
}

public void run() {
// DB から スケジュールリストを取ります
List<ScheduleMail> schMailList = sendMailService.getSchMailList();

// List<ScheduleMail> schMailList = new ArrayList<ScheduleMail>();
factoryList = new ArrayList<ImpSchedulerFactory>();
for (ScheduleMail scheduleMail : schMailList) {
// Initiate a Schedule Factory

// SchedulerFactory schedulerFactory = new ImpSchedulerFactory(
// scheduleMail.getId());
ImpSchedulerFactory impSchedulerFactory = new ImpSchedulerFactory(scheduleMail.getId());
// Retrieve a scheduler from schedule factory
Scheduler scheduler;
try {
scheduler = impSchedulerFactory.getScheduler();

// current time
//long ctime = System.currentTimeMillis();
// Initiate JobDetail with job name, job group, and executable
// job
// class
JobDetail jobDetail = new JobDetail("jobDetail"+scheduleMail.getId(),
"jobDetailGroup"+scheduleMail.getId(), JobMail.class);
// Initiate CronTrigger with its name and group name
CronTrigger cronTrigger = new CronTrigger("cronTrigger"+scheduleMail.getId(),
"triggerGroup"+scheduleMail.getId());

// setup CronExpression
CronExpression cexp = new CronExpression(scheduleMail.getTime());
// Assign the CronExpression to CronTrigger
cronTrigger.setCronExpression(cexp);

// schedule a job with JobDetail and Trigger
scheduler.scheduleJob(jobDetail, cronTrigger);
// start the scheduler
scheduler.start();
factoryList.add(impSchedulerFactory);
} catch (SchedulerException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}


}
...全文
67 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧