Apache Camel-在启动时触发任务仅运行一次

我正在使用Camel&Spring进行Java项目。在Spring完成其工作并且Camel完成所有路径的构建之后,我们想在单例bean上触发一个initialize方法。

我们无法在类创建时调用该方法,因为它具有从@Component

spring批注中拾取的与其他类的动态链接,并且我们不知道何时/是否已加载这些类,而尚未真正将init方法作为a的一部分运行构造函数。

我如何才能在Camel启动完成后立即调用一个或多个只能运行一次的方法?

谢谢!

回答:

如果 在CamelContext启动所有路由等之后调用Bean ,那么您可以像Ben建议的那样使用带有计时器的路由。

更好的替代方法是使用Camel的EventNotifier

API。然后在被触发的CamelContextStartedEvent上调用逻辑。有关EventNotifier

API的一些详细信息,请参见:http : //camel.apache.org/eventnotifier-to-log-

details-about-all-sent-exchanges.html

以上是 Apache Camel-在启动时触发任务仅运行一次 的全部内容, 来源链接: utcz.com/qa/409570.html

回到顶部