Для того, чтобы ваш основной поток работал как демон, вы можете использовать утилиту класса Main
, просто предоставив контекст:
public static void main(String[] args) throws Exception {
org.apache.camel.spring.Main main = new org.apache.camel.spring.Main();
main.setApplicationContextUri("META-INF/spring/camel-context.xml");
main.run();
}
Это выполнит ваши маршруты, не беспокоясь о добавлении sleep(...)
в вашей основной теме.Конечно, поскольку вы не знаете, когда закончится ваш маршрут, вы должны остановить его вручную (CTRL + C, чтобы подать сигнал в JVM), не зная, достаточно ли этого для вашего варианта использования.
О таймере, как предложил Клаус в комментарии к вопросу, просто используйте параметр repeat, чтобы выполнить его один раз (по умолчанию таймер будет тиковать каждую секунду, запуская маршрут на неопределенный срок):
<from uri="timer://foo?repeatCount=1"/>
Надеюсь, что это поможет.