2013-02-21 88 views
1

我需要能夠啓動和停止RouteBuilder之外的路由......所以我有一個類監視外部服務並打開和關閉路由。基本上我想要這條路線停止消耗新的請求並處理當前的空中路線。駱駝stopRoute startRoute泄漏線程

因此,我有一個計劃任務,每隔x秒運行一次,即打開和關閉服務。但我發現停止和開始路線導致它泄漏線程。

Basic代碼:

for(int iCount=0;iCount<10;iCount++) { 
    camelContext.stopRoute(TEST_ROUTE); 
    camelContext.startRoute(TEST_ROUTE); 
} 

這似乎產生了10個額外的線程。有沒有人遇到過這個?

注意:我已考慮使用掛起/恢復和還使用RoutePolicy。但我想知道爲什麼駱駝在使用啓動/停止路由時會泄露線程。

我在這裏錯過了什麼嗎?

+0

我曾經觀察過這種行爲,在那裏我定期停下來,並開始使用2.9.0版本的路線。我記得當時在我的搜索過程中,這個問題在2.10.0或更高的版本中被修正了。由於我的要求不再需要定期停止啓動路線,因此我有機會對其進行測試。 – techuser 2013-02-27 04:14:34

回答

0

當駱駝停止它使用一個後臺線程來控制正常關機,你可以在駱駝網站http://camel.apache.org/graceful-shutdown.html

瞭解而當你問一個問題,關於這樣的話提供更多的細節,例如路線是什麼你看到的10個線程?還有你使用的駱駝什麼版本等。以及你開始/停止的路線代碼等。