From 597fdbd958418e2785861aaef0726827f64cdf21 Mon Sep 17 00:00:00 2001 From: anlicheng <244108715@qq.com> Date: Mon, 20 Apr 2026 17:24:37 +0800 Subject: [PATCH] fix efka_client --- src/efka_client.erl | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/efka_client.erl b/src/efka_client.erl index 70a69e4..c16961c 100644 --- a/src/efka_client.erl +++ b/src/efka_client.erl @@ -78,21 +78,20 @@ callback_mode() -> handle_event_function. %% 异步发送数据, 连接存在时候直接发送;否则缓存到mnesia -handle_event(cast, {metric_data, RouteKey, Metric}, ?STATE_ACTIVATED, State = #state{socket = Socket}) -> +handle_event(cast, {metric_data, RouteKey, Metric}, StateName, State = #state{socket = Socket}) -> CastFrame = message_pb:encode_msg(#'CastFrame'{ body = {data, #'Data'{route_key = RouteKey, metric = Metric}} }), Packet = <>, - send_packet(Socket, Packet), - {keep_state, State}; - -handle_event(cast, {metric_data, RouteKey, Metric}, _, State) -> - Packet = message_pb:encode_msg(#'CastFrame'{ - body = {data, #'Data'{route_key = RouteKey, metric = Metric}} - }), - ok = cache_model:insert(Packet), + case StateName of + ?STATE_ACTIVATED -> + send_packet(Socket, Packet); + _ -> + ok = cache_model:insert(Packet) + end, {keep_state, State}; +%% Task的stream流,只做实时的 handle_event(cast, {task_event_stream, TaskId, Type, Stream}, ?STATE_ACTIVATED, State = #state{socket = Socket}) -> logger:debug("[efka_client] event_stream task_id: ~p, stream: ~ts", [TaskId, Stream]), EventPacket = message_pb:encode_msg(#'CastFrame'{ @@ -109,9 +108,7 @@ handle_event(cast, {close_task_event_stream, TaskId, Reason}, ?STATE_ACTIVATED, {keep_state, State}; %% 其他情况下直接忽略 -handle_event(cast, {task_event_stream, _TaskId, _Stream}, _, State = #state{}) -> - {keep_state, State}; -handle_event(cast, {close_task_event_stream, _TaskId, _Reason}, _, State = #state{}) -> +handle_event(cast, _, _, State = #state{}) -> {keep_state, State}; handle_event({call, From}, is_activated, ?STATE_ACTIVATED, State = #state{}) ->