
类似于这种
event.publish(sendMessage).onResult(resultMessage -> { //todo }); 具体需求是先发送一条消息给下游,下游处理完成后再返回一条消息回来告知处理结果。
原来的做法是定义一堆 @Output @Input @StreamListener
分散在各处,代码可读性很差。不知道有没有函数式的办法可以让两者关联起来
1 mmdsun 2022-12-30 10:12:41 +08:00 消息手动发,看看能不能获取消息提交的 offset ,应该可以做到。或者,可以利用中间件存储一些状态。 这个问题比较相似: https://stackoverflow.com/questions/73006450/is-there-any-way-to-know-if-kafka-message-has-been-confirmed-in-producer |
2 lmshl 2022-12-30 13:01:12 +08:00 Promise 模式 任务开始时创建 Promise 和标识句柄,收到来自下游的任务结束,根据句柄找到 Promise 并标记为 Resolve/Completed 这样业务里看到 Promise 状态变更时,自动进入 then 逻辑继续后面的处理 |