选择 EventEmitter 还是任务队列,应先问:工作必须在哪里执行,进程停止后会怎样?
EventEmitter 通知同一个 Node.js 进程内的监听器。持久队列保存工作,供 worker 稍后处理。两者都能分离职责,但故障行为不同。
1. 跟踪一次本地通知
假设一个组件初始化完成,希望同进程其他组件作出响应。EventEmitter 很适合:先注册监听器,再发出事件。
[One process]
emit("ready") -> Listener A
-> Listener B
Node.js 按注册顺序同步调用监听器。事件不会为后来注册的监听器保存,未完成工作也无法在进程崩溃后保留。。
