【问题标题】:How to send messages to a temporal channel created in another handler?如何将消息发送到在另一个处理程序中创建的时间通道?
【发布时间】:2018-01-19 12:15:04
【问题描述】:

也许我错过了一些“集成模式”......

我有一个进程(来自 TaskExecutor 的线程),在某些情况下需要停止并等待其他数据继续。

我正在考虑在接收方法中阻塞,但我不知道如何从不同的线程发送消息到该通道(一个临时的,不是吗?)解除阻塞这个线程,只有这个.

负责解除阻塞的组件应该从某种消息平台(redis、rabbit、...)接收消息,然后“通知”被阻塞的执行。

一个丑陋的实现可能是等待/通知,但我当然不想使用具有完整“面向消息”的解决方案。

这个问题有什么组件/解决方案吗? 也许有某个主题的订阅者我可以使用它来确保只有 thead ir 再次运行,但我不能阻止发布订阅频道,可以吗?

非常感谢,

【问题讨论】:

    标签: java multithreading spring-integration


    【解决方案1】:

    即某些情况需要停止并等待其他数据继续。

    看起来这确实是Thread Barrier 组件的用例。

    做类似事情的另一种方法是 AggregatorreleaseStrategy 设置为 2 条消息(按大小)。

    无论如何,correlationKey 是两个用例中的关键实体。

    【讨论】:

    • 虽然我不能应用这个解决方案(只是因为我们这边的一些架构原因,并且目前缺乏适当的 Spring Integration 版本)我正在检查文档并提高我对 SI 的了解,.. . 我会尽快使用这种方法,谢谢 Artem!
    猜你喜欢
    • 2019-01-15
    • 1970-01-01
    • 2019-03-06
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多