Apache Camel - Установка значений внутри процессоров

1

Я не уверен, сколько людей имели возможность иметь дело с Camel Processors. Так что это мое беспокойство:

Я получаю некоторую информацию и отправляю ее на процессор. Из процессора он вызывает вызов базы данных через службу и вставляет запись. Я использую POJO и устанавливаю значения в моей модели в процессоре через объект обмена. Я вообще не сталкиваюсь с какими-либо проблемами, но процессор не предназначен для установки значений в списке или любой другой структуре. Он должен просто выполнить некоторую обработку объекта обмена и передать его в первую очередь из-за того, что может возникнуть ситуация, когда несколько потоков могут вызывать один и тот же процессор.

Это то, что я хотел бы знать:

  1. Есть ли другая альтернатива процессорам в Camel, где я могу сделать эту настройку по модели. Пример: переадресация, перехватчик и т.д.
  2. Если не то, что еще может быть подходом?
  • 0
    Это предложение неверно: оно должно просто выполнить некоторую обработку объекта обмена и передать его в первую очередь из-за того, что может быть ситуация, когда несколько потоков могут вызывать один и тот же процессор. Откуда вы получили эту информацию?
  • 0
    Я не уверен в вашем вопросе. Но вы можете создать bean-компонент и вызвать метод этого bean-компонента, и этот метод может выполнить тот вызов db, который вы хотите.
Теги:
apache-camel

1 ответ

3
Лучший ответ

Processors являются одноточечными и поэтому не должны использоваться для хранения состояния любого типа...

некоторые варианты...

  • хранить информацию о состоянии в свойствах Exchange или заголовках тела

  • замените Processor на Bean где вы можете управлять областью (прототипом и т.д.),

  • использовать переменные ThreadLocal для ссылок, не связанных с потоками

  • 0
    Это именно то, что я искал. Я провел некоторое исследование на ThreadLocal, но некоторые люди говорят, что это не поможет?
  • 0
    ThreadLocal не поможет с переменными области запроса (так как они являются областью потока), но помогает уменьшить ресурсы, не относящиеся к потоку (SimpleDateFormat и т. Д.)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню