2013-10-16 31 views
1

我正在使用java datastax驅動程序。我有一個ServletContextListener,它通過調用Cluster.shutdown()來關閉上下文中的datastax Cluster對象。問題是需要幾分鐘才能返回shutdown()。羣集關閉時使用超時的後果?

Cluster.shutdown()有一個覆蓋,您可以指定一個超時值。我似乎無法找到任何關於NOT使用關閉值的文檔,並且當我指定一個毫秒的超時時間時,集羣會立即關閉(如預期的那樣)。

所以,我的問題是,如果我只是在servlet關閉時關閉集羣,是否有我需要等待返回的原因?看起來,通過指定超時,它本質上是調用異步關機,這應該是好的,但我不想引入內存泄漏或任何不穩定。

我是Cassandra/datastax的新手,所以如果有關使用超時的信息在某處出現,指出我在那個方向會很棒!

TIA, WBJ

回答

1

如果指定一個短暫停,該方法將啓動關機,但僅在關機處理結束等待,只要問。所以是的,短暫超時不會影響將會異步繼續的關機操作。如果您不關心關閉何時完成(即,何時完全關閉了所有資源),那麼使用超時並沒有特別的缺點(並且您甚至可以使用0作爲超時來清除此意圖)。

我不會爲驅動程序的版本2.x稍微改變關閉API,使其在默認情況下處於異步狀態,但會在關閉完成時返回未來。這有希望使它更清楚發生了什麼。

相關問題