【发布时间】:2013-12-06 06:16:48
【问题描述】:
是否可以以编程方式创建/拆除 Spring 集成通道,而不是在 Spring 配置中静态声明它们?
我的情况是这样的:
我有一个需要推送通知的 web 应用程序,所以我正在使用长轮询。那些长轮询调用需要在服务器上阻塞,直到它们得到一个事件。
我所设想的(当然,对替代方案开放)是 每个会话 的 Spring Integration 队列通道,每个会话都侦听一个 pubsub 通道。因此,当服务器事件发生时,它将被发布到 pubsub,然后它将向下传递到各个会话队列,在那里它们将被弹出并发送到正在轮询的客户端。
为了做到这一点,当创建会话时,我必须在 pubsub 频道上注册新的队列频道列表。当会话被销毁时,新队列也将被销毁。
这样的事情可能吗?
我不想让会话直接监听 pubsub,因为存在丢失消息的风险,所以我希望在中间有一个队列来缓冲它们。
谢谢, 罗伊
【问题讨论】: