我正在尝试将 Guice (Java)、Quartz 调度程序和 iBatis ( iBaGuice ) 连接在一起以执行以下操作:
- 使用启动命令行实用程序扫描程序
main()
- 定期扫描目录(作为参数提供)以查找包含格式化输出(XML 或 YAML)的文件
- 当检测到文件时,解析并输出结果到数据库
问题:
- 我用这个例子来连接 Guice 和 Quartz。但是,我遗漏了一些我在评论中询问的重要细节,但这篇文章有些过时了,所以我也在这里引用它:
- 如何设置调度程序并不明显。我将在哪里以及如何连接
Trigger
(我可以使用Trigger#makeMinutelyTrigger
)?- 我真的只有一种类型的工作要执行,我知道 JobFactory#newJob 中的细节来自
TriggerFiredBundle
参数,但是我在哪里/如何连接它?我在哪里/如何创建或连接具体的工作?
PS通过创建和连接ScheduleProvider,我得到了一些进一步的信息。现在,我不知道如何在以下代码段中实际安排作业。似乎我的JobFactory#newJob
方法从未被调用
public class CollectorServiceImpl implements CollectorService {
Scheduler scheduler;
/**
* @throws SchedulerException
*/
@Inject
public CollectorServiceImpl(final SchedulerFactory factory, final GuiceJobFactory jobFactory)
throws SchedulerException {
scheduler = factory.getScheduler();
scheduler.setJobFactory(jobFactory);
}
/**
* @throws SchedulerException
* @see teradata.quantum.reporting.collector.service.CollectorService#start()
*/
@Override
public void start() throws SchedulerException {
Trigger trigger = TriggerUtils.makeMinutelyTrigger("MIN_TRIGGER");
scheduler.scheduleJob(trigger); // this fails trigger validation since no job name is provided
scheduler.start();
}
}