Timer

Поддерживаются только потребитель.

Компонент Timer используется для генерации обмена сообщениями при срабатывании таймера. Вы можете потреблять события только из этого endpoint.

URI format

<span style="color: rgb(0,0,0);">timer:name[?options]</span>

Где name имя объекта Timer, который создается и совместно используется endpoints. Так что если вы используете одно и то же имя для всех endpoints таймера, Timer будет использовать только один объект и поток.

Примечание

Тело IN сгенерированного обмена -- null. Поэтому вызов exchange.getIn().getBody()возвращает null.

См. также компонент Quartz (opens in a new tab) , который поддерживает гораздо более продвинутое планирование.

Configuring Options

Компоненты настраиваются на двух отдельных уровнях:

  • component level

  • edpoint level

Configuring Component Options

На уровне компонента задаются основные и общие настройки, которые впоследствии наследуются endpoints. Это самый высокий уровень конфигурации.

Например, компонент может иметь настройки безопасности, учетные данные для аутентификации, URL-адреса для сетевых подключений и т. д.

Некоторые компоненты имеют всего несколько параметров, в то время как у других их может быть много. Поскольку компоненты обычно имеют предварительно настроенные значения по умолчанию, которые используются в большинстве случаев, вам может понадобиться настроить только несколько параметров компонента или вообще ничего не настраивать.

Компоненты можно настроить с использованием:

  • Component DSL.

  • Конфигурационного файла (application.properties, *.yaml files, etc).

  • Напрямую в Java code.

Configuring Endpoint Options

Обычно больше времени уходит на настройку endpoints, так как они обладают множеством параметров. Эти параметры позволяют настроить поведение endpoint в соответствии с вашими потребностями. Кроме того, параметры делятся на категории в зависимости от того, используется ли endpoint как потребитель (from), как производитель (to) или в обеих ролях.

Настройка endpoints чаще всего выполняется непосредственно в URI endpoint в виде параметров пути и запроса. Также вы можете использовать Endpoint DSL и DataFormat DSL как типобезопасный способ настройки endpoints и форматов данных в Java.

Хорошей практикой при настройке параметров является использование Property Placeholders.

Property placeholders предоставляют несколько преимуществ:

  • Помогают избежать использования жестко закодированных URL-адресов, номеров портов, конфиденциальной информации и других настроек.

  • Позволяют вынести конфигурацию за пределы кода.

  • Делают код более гибким и удобным для повторного использования.

Component properties

Delay

  • Количество миллисекунд ожидания перед генерацией первого события. Не следует использовать вместе с опцией времени. Значение по умолчанию -- 1000.

  • По умолчанию: 1000

  • Тип: long

Fixed Rate

  • События происходят примерно через равные промежутки времени, разделенные указанным периодом.

  • По умолчанию: false

  • Тип: boolean

Include Metadata

  • Определяет следует ли включать в обмен метаданные, такие как время срабатывания, имя таймера, количество таймеров и т. д.

  • По умолчанию: false

  • Тип: boolean

Period

  • Генерирует периодические события с заданным интервалом. Значение должно быть нулевым или положительным. По умолчанию значение равно 1000.

  • По умолчанию: 1000

  • Тип: long

Repeat Count

  • Задает максимальный предел для количества срабатываний. Таким образом, если установить его на 1, таймер сработает только один раз. Если установить его на 5, он сработает только пять раз. Значение ноль или отрицательное означает срабатывание вечно.

  • По умолчанию:

  • Тип: long

Timer Name

  • Обязательно Имя таймера.

  • По умолчанию:

  • Тип: String

Component advanced properties

Bridge Error Handler

  • Тип: Предоставляет возможность связать потребителя с маршрутизатором Error Handler Camel. Это позволяет обрабатывать исключения (если возможно), возникающие при получении входящих сообщений потребителем Camel, в виде сообщений, передаваемых в маршрутизатор Error Handler.

    Важно: Это возможно только в том случае, если сторонний компонент позволяет Camel получать уведомления о возникших исключениях. Некоторые компоненты обрабатывают исключения только внутренне, из-за чего использование bridgeErrorHandler становится невозможным. В некоторых случаях мы можем доработать компонент Camel, чтобы интегрировать его со сторонним компонентом и сделать такую возможность доступной в будущих выпусках. По умолчанию потребитель использует org.apache.camel.spi.ExceptionHandler для обработки исключений, которые логируются с уровнем WARN или ERROR и игнорируются.

  • По умолчанию: false

  • Тип: boolean

Daemon

  • Указывает, работает ли поток, связанный с endpoint таймера, как daemon. Значение по умолчанию -- true.

  • По умолчанию: true

  • Тип: boolean

Exception Handler

  • Позволяет потребителю использовать собственный ExceptionHandler.

    Обратите внимание, что если включена опция bridgeErrorHandler, то эта настройка не используется. По умолчанию потребитель обрабатывает исключения, которые логируются с уровнем WARN или ERROR и игнорируются.

  • По умолчанию:

  • Тип: ExceptionHandler

Exchange Pattern

  • Определяет шаблон взаимодействия, который применяется, когда потребитель создает новый обмен (exchange).

    Возможные значения:

    • InOnly

    • InOut

  • По умолчанию:

  • Тип: ExchangePattern

Pattern

  • Тип: Позволяет указать пользовательский шаблон даты, который будет использоваться для установки параметра времени с использованием синтаксиса URI.

  • По умолчанию:

  • Тип: String

Synchronous

  • Устанавливает, следует ли строго использовать синхронную обработку.

  • По умолчанию: false

  • Тип: boolean

Time

  • java.util.Date должно быть сгенерировано первое событие. При использовании URI ожидается следующий шаблон: yyyy-MM-dd HH:mm:ss или yyyy-MM-dd'T'HH:mm:ss.

  • По умолчанию:

  • Тип: Date

Timer

  • Чтобы использовать собственный таймер.

  • По умолчанию:

  • Тип: Timer