gpt4 book ai didi

java - Hazelcast - 如何在成员处于运行模式期间从 hazelcast 中完全删除 IQueue

转载 作者:行者123 更新时间:2023-12-02 08:42:07 27 4
gpt4 key购买 nike

目前,我已通过以下方式在运行时将队列添加到 Hazelcast 成员。

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

现在添加队列后,我可以将项目从客户端和我的消费者应用程序中推送到队列。我能够消耗所有元素。我想在任务完成后删除整个 QueueConfig(考虑到队列在任何成员中都不可用)。

我尝试了以下方式,但这会从 Hazelcast 抛出 UnsupportedExeptionhazelcastInstance.getConfig().getQueueConfigs().remove(key)任何人都可以提供任何提示或方法来从 Hazelcast 实例中删除 Iqueue 吗?我真的很期待解决方案,并感谢这里的任何帮助。

最佳答案

Hazelcast 客户端仅支持在客户端覆盖或添加新配置。您可以在这里查看源代码 https://github.com/hazelcast/hazelcast/blob/master/hazelcast/src/main/java/com/hazelcast/client/impl/clientside/ClientDynamicClusterConfig.java#L501 ,客户端不支持哪些操作。

To purge unused or empty queues after a period of time, use the empty-queue-ttl element. (programmatic way-> queueConfig.setEmptyQueueTtl(TTL))

使用上述 TTL 配置,Hazelcast 会在 TTL 过期后自动清除空队列。我希望它有帮助。

另一个解决方案是在队列中的任务完成后根据需要使用新配置创建一个新队列。

关于java - Hazelcast - 如何在成员处于运行模式期间从 hazelcast 中完全删除 IQueue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61317596/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com