Nig*_*olf 16 java spring apache-camel
我正在使用Camel&Spring开发Java项目.我们想在Spring完成它的事情并且Camel完成构建所有路由之后在单例bean上触发初始化方法.
我们不能在类创建时调用该方法,因为它与从@Component spring注释中获取的其他类具有动态链接,并且我们不知道这些类何时/是否已经加载到实际运行init方法作为a的一部分构造函数.
如何在Camel启动完成后立即调用一个或多个方法来运行?
谢谢!
Ben*_*Day 22
另一个提供更多灵活性的简单选项是使用带有repeatCount = 1的camel-timer和一个足够长的延迟值来让所有内容初始化.你还可以添加基本的异常处理来延迟/重试等...
from("timer://runOnce?repeatCount=1&delay=5000").to("bean:runOnceBean");
Run Code Online (Sandbox Code Playgroud)
Cla*_*sen 10
如果在CamelContext启动所有路由等之后必须调用bean ,那么你可以像Ben建议使用带有计时器的路由.
一个更好的选择是使用Camel的EventNotifier API.然后调用被触发的CamelContextStartedEvent上的逻辑.有关EventNotifier API的一些详细信息,请访问:http://camel.apache.org/eventnotifier-to-log-details-about-all-sent-exchanges.html
| 归档时间: |
|
| 查看次数: |
22816 次 |
| 最近记录: |