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

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

发送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修改过]

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

这个坛子是这样做的吗?

可以参考Node.JS原理。

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

看了一下,实施起来非常复杂。



这个是nodeJS的事件循环



这个是异步处理。

2014-08-08 09:51 "@banq"的内容
可以参考Node.JS原理。 ...

看了node.js的异步事件处理,很受启发。但是,其羸弱的OO功能为我所不能接受。而node.js涉及到调用系统内核处理异步i/o非我能力所为。因此,在找tangxuehua说的那种机制,虽然会出现最初页面要轮询是否有反馈信息,这种低效的运行方式。