为了账号安全,请及时绑定邮箱和手机立即绑定

如何创建后进先出队列通道

如何创建后进先出队列通道

沧海一幻觉 2022-09-07 17:45:00
目前,我在集成流中使用队列通道,但它使用 FIFO 提取方式。有没有办法将其更改为后进先出?另外,有没有办法根据属性从队列中删除消息?我怀疑我需要使用PriorityChannel从FIFO切换到LIFO,但我不知道如何完成。@Bean    fun notificationChannel(): MessageChannel {        return MessageChannels.queue().get()    }例如,我的队列通道将填充包含 userId 的消息。由于我只对 userId 消息的最新状态感兴趣,因此我想使用 LIFO 并删除与最新消息具有相同 userId 的所有消息。
查看完整描述

2 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

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

但是,无论如何,这是一个非常简单的界面;它只有少数几个方法和唯一的用途,和 。QueueQueueChannelpoll()offer()size()

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


查看完整回答
反对 回复 2022-09-07
?
largeQ

TA贡献2039条经验 获得超7个赞

队列通道将队列作为构造函数参数,弹簧集成 DSL 提供 。因此,您可以使用上述工厂方法作为参数来获得所需的行为。public QueueChannel(Queue<Message<?>> queue)public static QueueChannelSpec queue(Queue<Message<?>> queue)Collections.asLifoQueue(..)



查看完整回答
反对 回复 2022-09-07
  • 2 回答
  • 0 关注
  • 64 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号