gpt4 book ai didi

java - 如何创建 LIFO 队列 channel

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

目前,我在集成流程中使用队列 channel ,但它使用 FIFO 提取方式。有没有办法将其更改为 LIFO?

另外,有没有办法根据属性从队列中删除消息?

我怀疑我需要使用 PriorityChannel 从 FIFO 切换到 LIFO,但我不知道它是如何完成的。

@Bean
fun notificationChannel(): MessageChannel {
return MessageChannels.queue().get()
}

例如,我的 QueueChannel 将填充包含 userId 的消息。由于我只对 userId 消息的最新状态感兴趣,因此我想使用 LIFO 并删除与最新消息具有相同 userId 的所有消息。

最佳答案

听起来您并不真正想要 LIFO,您只想要给定条件的最新信息。

但是,无论如何,Queue是一个非常简单的界面;它只有几种方法和 QueueChannel仅使用 poll() , offer()size() .

因此,创建自定义队列应该很简单,例如基于线程安全的 ConcurrentHashMap<String, Message<?>>关键是你的条件。

关于java - 如何创建 LIFO 队列 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55398745/

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