Я пытаюсь соединить Guice (Java), Quartz scheduler и iBatis ( iBaGuice ), чтобы сделать следующее:
- Запустите утилиту-сканер командной строки, используя
main()
- Периодически проверять каталог (предоставляется в качестве аргумента) на наличие файлов, содержащих форматированный вывод (XML или YAML)
- При обнаружении файла, анализ и вывод результата в базу данных
Проблемы:
- Я использовал этот пример , чтобы связать Guice и Quartz. Однако я упускаю некоторые важные детали, о которых я спрашиваю в комментариях, но пост несколько устарел, поэтому я цитирую его и здесь:
- Не очевидно, как настроить планировщик. Куда и как мне подключить
Trigger
(я могу использовать Trigger#makeMinutelyTrigger
)?
- У меня действительно есть только один тип задания, которое я буду выполнять, я понимаю, что подробности в JobFactory # newJob берутся из параметра
TriggerFiredBundle
, но куда / как мне это подключить? И где / как я могу создать или проволочную бетонную работу?
P.S. Я получил немного дальше, создав и подключив 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();
}
}