事件处理:同步、异步与错误处理全解析
在事件处理系统中,我们常常需要处理各种类型的事件,包括同步和异步事件。同时,还需要考虑数据的存储、错误处理、处理程序的替换等问题。下面将详细介绍这些方面的内容。
1. 发送同步和异步事件
事件可以根据生产者生成事件的速率控制需求,同步或异步地发送给管理器并转发给处理程序。管理器进程会依次调用所有添加的处理程序。
- 异步事件发送 :
gen_event:notify/2函数用于向所有处理程序发送异步事件,并立即返回ok。对于添加到管理器的每个处理程序,会依次调用Mod:handle_event/2回调函数。 - 同步事件发送 :
gen_event:sync_notify/2同样会为所有处理程序调用Mod:handle_event/2回调函数,但只有在所有回调执行完毕后才会返回ok。
以下是实现日志记录器的 handle_event/2 回调函数的示例代码:
handle_event(Event, {Fd, Count}) ->
print(Fd, Count, Event, "Event"),
{ok, {Fd, Count+1}}.
print(Fd, Count, E
超级会员免费看
订阅专栏 解锁全文
2046

被折叠的 条评论
为什么被折叠?



