构建高容错系统:Erlang OTP 应用实战
1. 错误日志管理
在处理错误日志时,我们无需手动删除错误报告,因为轮换机制会自动清理旧的错误日志。若想保留所有错误日志,需定期轮询错误日志并提取所需信息。
2. 告警管理
2.1 告警处理模块
在编写应用程序时,当 CPU 因计算大素数而过热时,我们需要触发一个告警。这里使用真正的 OTP 告警处理程序,以下是其代码:
-module(my_alarm_handler).
-behaviour(gen_event).
%% gen_event callbacks
-export([init/1, handle_event/2, handle_call/2,
handle_info/2, terminate/2]).
%% init(Args) must return {ok, State}
init(Args) ->
io:format("*** my_alarm_handler init:~p~n",[Args]),
{ok, 0}.
handle_event({set_alarm, tooHot}, N) ->
error_logger:error_msg("*** Tell the Engineer to turn on the fan~n"),
{ok, N+1};
handle_event({clear_alarm, tooHot}, N) ->
error_logger:error_msg("*** Danger over. Turn off the fan~n"),
{ok, N};
han
超级会员免费看
订阅专栏 解锁全文
101

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



