簡體   English   中英

如何使用Spring DSL使駱駝主線程保持活動狀態

[英]How to keep main Camel thread alive with Spring DSL

我正在開發我的第一個真正的基於Camel的Java應用程序,並且遇到了一個奇怪的,復雜的問題,我認為這是Camel主線程快要死掉/完成的結果。

基本上,路由本身僅包含幾個處理器,並且其中一個處理器進行大量的計算,需要20到25秒才能完成。 整個應用程序在不引發任何異常/錯誤/日志語句的情況下終止,這是其他任何跡象表明存在問題,並且在進行這些昂貴的計算時會死掉。

我不是在尋找任何人來診斷我的問題,我只是想一種方法來強制Camel路線保持存活,因為我認為正在發生的事情是Camel主線程到達了該路線的盡頭,將其停止,並且關閉應用程序。 我想強迫駱駝主線程存活60秒,以查看是否至少可以排除它。

如果使用Java DSL,我將在路由的末尾添加以下內容:

.to(new Processor() {
    @Override
    public void process(Exchange exchange) {
        try {
            Thread.sleep(60000);
        } catch(Throwable t) {
            // ...
        }
    }
})
.to("direct:endOfRoute");

我正在使用Spring DSL(XML)-有什么想法嗎? 提前致謝!

路由完成不會終止您的Camel應用程序/上下文,您只需要確保實例化上下文的容器保持運行即可...

參見http://camel.apache.org/running-camel-standalone-and-have-it-keep-running.html

也就是說,對於您的特定問題,您可以使用延遲器EIP在您的路線中引入明確的延遲

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM