事件总线,异步处理。如何反馈信息给用户呢?

showerxp 14-08-06

如题,用户发出命令,产生事件,进入事件总线。服务器后台处理事件总线中的事件,如何反馈处理完的信息给最初事件产生源头——用户呢?

tangxuehua
2014-08-06 22:13

发送cmd的进程发送完cmd后把这个cmd id保存在一个dict中,key是cmd id,value是一个task

domain event的订阅方处理完domain event之后发送reply消息到消息队列,该消息中包括了cmd id,然后发送cmd的进程中有一个独立的线程监听这个队列的新消息。

一旦有新消息,就根据消息的cmd id拿到task,然后将task标记为已完成。
[该贴被tangxuehua于2014-08-06 22:14修改过]

showerxp
2014-08-07 15:28

本人有些愚钝,一下太多专业术语有些不懂。
揣摩您的意思,大概:
1、用户发送cmd进程?给每一个进程设置唯一标示cmd id,并对应一个task。
2、系统根据cmd,触发事件,处理。处理完之后发送reply反馈信息到一个消息队列,包括cmd id。
3、用户发送cmd的页面(cmd进程),需要一个专门监听reply反馈的消息队列,如果有符合自己的cmd id消息则取出来,看反馈结果——task?

这个坛子是这样做的吗?

banq
2014-08-08 09:51

可以参考Node.JS原理。

tangxuehua
2014-08-10 12:12

恩,我也想看看nodeJS是如何在io线程异步处理完后,如何通知主逻辑线程某个io线程处理完了。没研究过nodeJS,还请banq介绍一下哈。

2Go 1 2 下一页