Apache camel Liquibase在Camel启动后应用修补程序,导致错误

Apache camel Liquibase在Camel启动后应用修补程序,导致错误,apache-camel,liquibase,weld,Apache Camel,Liquibase,Weld,我正努力让Liquibase和Camel无缝工作 Camel在Liquibase应用其修补程序之前启动其路由,如果前者必须访问数据库中尚未包含的表,则会导致错误 作为一种解决方法,我在路由开始时加入了一个延迟线程。它是有效的,但并非在所有情况下都有效:例如,Weld不会在新线程中传播上下文,因此我无法在新线程中执行任何复杂的操作 有没有办法延迟Camel启动或预测Liquibase应用其修补程序的时间?为Camel路由设置autoStartup=false,并在Liquibase修补程序启动数据

我正努力让Liquibase和Camel无缝工作

Camel在Liquibase应用其修补程序之前启动其路由,如果前者必须访问数据库中尚未包含的表,则会导致错误

作为一种解决方法,我在路由开始时加入了一个延迟线程。它是有效的,但并非在所有情况下都有效:例如,Weld不会在新线程中传播上下文,因此我无法在新线程中执行任何复杂的操作


有没有办法延迟Camel启动或预测Liquibase应用其修补程序的时间?

为Camel路由设置autoStartup=false,并在Liquibase修补程序启动数据库后启动路由一次。您可以使用计时器或在liquibase生成的表“databasechangeloglock”上设置的LOCKED flag值来检查liquibase是否正在修补,这取决于您的用例。

应用程序使用哪种体系结构框架?只需使用Java EE和Weld CDI实现,在Wildfly中运行即可。