Интеграция Apache Camel-Quartz

#java #integration #apache-camel #quartz-scheduler #scheduling

#java #интеграция #apache-camel #quartz-планировщик #планирование

Вопрос:

Я пытаюсь использовать компонент camel-quartz Camel для планирования заданий на нашем сервере приложений (этот выбор технологии является окончательным и выше моего уровня оплаты), и единственная документация, которую предоставляет Apache (здесь ), минимальна и очень сжата без каких-либо реальных полезных примеров для новичков camel / quartz.

Я пытаюсь понять общую картину здесь, прежде чем я смогу углубиться в потребности моих конкретных заданий. В документации указано, что — с помощью Camel — Quartz таймеры настраиваются как конечные точки. Итак, я предполагаю (пожалуйста, поправьте меня, если я ошибаюсь), что это означает, что вы кодируете задания для запуска вместе с их файлами конфигурации / свойств, а затем настраиваете кварцевый таймер в качестве конечной точки Camel; затем, когда эти задания выполняются, они каким-то образом могут обмениваться данными через Camel с другимиконечные точки (?).

Итак, это единственное преимущество использования camel-quartz вместо просто Quartz (что позволяет вашим заданиям взаимодействовать с другими конечными точками)?

Quartz может быть настроен с quartz.properties помощью файла и требует другой конфигурации, чтобы можно было инициализировать планировщик. Позаботится об этом camel-quartz для вас?Я хотел бы просто сосредоточиться на написании задания, но не уверен, какие минимальные конфигурации XML или свойств необходимы.

Заранее спасибо всем, кто может помочь немного лучше прояснить этот camel-quartz процесс разработки.

Ответ №1:

Настройка конечной точки quartz проста, приведенное ниже задание quartz запускает FileProcessor.process() в 1 час ночи каждый день:

 <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
    <package>com.test.app</package>
    <template id="camelTemplate"/>
    <route>
        <from uri="quartz://fileProcessorJob?cron=0 0 1 * * ?"/>
        <to uri="bean:fileProcessor?method=process"/>
    </route>
</camelContext>
  

По умолчанию Quartz ищет quartz.properties в пути к классу, вы также можете предоставить сведения о конфигурации в xml, как показано ниже:

 <bean id="quartz" class="org.apache.camel.component.quartz.QuartzComponent">
    <property name="propertiesFile" value="com/test/app/myquartz.properties"/>
</bean>
  

Ответ №2:

Вы уже видели документацию camel-quartz на веб-сайте camel? http://camel.apache.org/quartz.html

Это не очень подробно, но должно помочь вам начать. Поиск quartz.properties выполняется в основании пути к классу. Вы также можете указать другой файл или использовать пользовательские свойства. См. Раздел «Настройка файла quartz.properties».

Camel-quartz имеет простую цель запуска маршрута camel. Таким образом, вы можете использовать все другие компоненты camel для реализации ваших требований. Если ваша работа связана с интеграцией, то camel-quartz — хороший выбор. Если ваша работа в основном вызывает внутренние API вашего приложения, тогда обычного quartz должно быть достаточно.

Комментарии:

1. Спасибо, Кристиан — да, я включил ту же ссылку в исходный вопрос и нашел страницу такой же минимально полезной, как и вы! Наверное, мне интересно, настроен ли таймер / планировщик Quartz в файле свойств quartz или хотя camel в файле конфигурации camel?