This commit is contained in:
anlicheng 2025-05-07 11:38:49 +08:00
parent 12d6303a02
commit 143829d730

View File

@ -318,7 +318,7 @@ handle_info({server_push_message, PacketId, <<?METHOD_PRAMAS:8, ParamsBin/binary
{noreply, State}; {noreply, State};
%% %%
handle_info({server_push_message, PacketId, <<?METHOD_METRICS:8, MetricsBin/binary>>}, State = #state{transport_pid = TransportPid, inflight = Inflight}) -> handle_info({server_push_message, PacketId, <<?METHOD_METRICS:8, MetricsBin/binary>>}, State = #state{inflight = Inflight}) ->
#service_metrics{service_id = ServiceId, metrics = Metrics, timeout = Timeout} = message_pb:decode_msg(MetricsBin, service_metrics), #service_metrics{service_id = ServiceId, metrics = Metrics, timeout = Timeout} = message_pb:decode_msg(MetricsBin, service_metrics),
case efka_micro_service:get_pid(ServiceId) of case efka_micro_service:get_pid(ServiceId) of
@ -327,11 +327,16 @@ handle_info({server_push_message, PacketId, <<?METHOD_METRICS:8, MetricsBin/bina
code = 0, code = 0,
message = <<"service not run">> message = <<"service not run">>
}, },
efka_transport:response(TransportPid, PacketId, message_pb:encode_msg(Reply)), safe_response(PacketId, message_pb:encode_msg(Reply), State),
{noreply, State}; {noreply, State};
ServicePid when is_pid(ServicePid) -> ServicePid when is_pid(ServicePid) ->
Ref = make_ref(), Ref = make_ref(),
efka_micro_service:push_metrics(ServicePid, Ref, Metrics), efka_micro_service:push_metrics(ServicePid, Ref, Metrics),
%%
erlang:start_timer(Timeout * 1000, self(), {request_timeout, Ref}),
{noreply, State#state{inflight = maps:put(Ref, PacketId, Inflight)}} {noreply, State#state{inflight = maps:put(Ref, PacketId, Inflight)}}
end; end;