簡體   English   中英

Hazelcast - 如何在運行模式下的成員期間從 hazelcast 中完全刪除 IQueue

[英]Hazelcast - How to completely remove the IQueue from the hazelcast during member at running mode

目前,我已通過以下方式在運行時將隊列添加到 Hazelcast 成員。

QueueConfig queueConfig = new QueueConfig();
queueConfig.setName(task.getKey());
hazelcastInstance.getConfig().addQueueConfig(queueConfig);

現在添加隊列后,我可以將項目從客戶端和我的消費者應用程序推送到隊列中。 我能夠消費所有物品。 我想在我的任務完成后刪除整個QueueConfig (考慮到隊列在任何成員中都不可用)。

我嘗試了以下方式,但這會從 Hazelcast 拋出UnsupportedExeption hazelcastInstance.getConfig().getQueueConfigs().remove(key)任何人都可以提供任何提示或方法來從Iqueue實例中刪除隊列嗎? 我真的很期待解決方案,並感謝這里的任何幫助。

Hazelcast 客戶端僅支持在客戶端覆蓋或添加新配置。 您可以在這里查看源代碼https://github.com/hazelcast/hazelcast/blob/master/hazelcast/src/main/java/com/hazelcast/client/impl/clientside/ClientDynamicClusterConfig.java#L501 ,其中客戶端不支持操作。

要在一段時間后清除未使用或空隊列,請使用empty-queue-ttl元素。 (編程方式-> queueConfig.setEmptyQueueTtl(TTL)

使用上述 TTL 配置 Hazelcast 在 TTL 到期后自動清除空隊列。 我希望它有所幫助。

另一個解決方案是在隊列中的任務完成后,如果需要,使用新配置創建一個新隊列。

暫無
暫無

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

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