深入理解事件处理:同步、异步、数据检索与错误处理
在事件处理系统中,我们常常需要处理各种类型的事件,包括同步和异步事件。同时,还需要处理数据的检索、错误和无效返回值,以及实现事件处理程序的交换等功能。下面将详细介绍这些方面的内容。
1. 发送同步和异步事件
事件可以同步或异步地发送到管理器并转发给处理程序,这取决于控制生产者生成事件速率的需求。管理器进程处理事件,依次调用所有添加的处理程序。
- 同步和异步函数
-
gen_event:notify/2:发送异步事件给所有处理程序,并立即返回ok。 -
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, Event, Tag) ->
io:format(Fd, "Id:~w Time:~w D
超级会员免费看
订阅专栏 解锁全文
168万+

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



