fix
This commit is contained in:
parent
143829d730
commit
b511b19bbf
@ -45,15 +45,18 @@
|
|||||||
%%%===================================================================
|
%%%===================================================================
|
||||||
|
|
||||||
%% 发送数据
|
%% 发送数据
|
||||||
|
-spec metric_data(ServiceId :: binary(), LineProtocolData :: binary()) -> no_return().
|
||||||
metric_data(ServiceId, LineProtocolData) when is_binary(ServiceId), is_binary(LineProtocolData) ->
|
metric_data(ServiceId, LineProtocolData) when is_binary(ServiceId), is_binary(LineProtocolData) ->
|
||||||
gen_server:cast(?SERVER, {metric_data, ServiceId, LineProtocolData}).
|
gen_server:cast(?SERVER, {metric_data, ServiceId, LineProtocolData}).
|
||||||
|
|
||||||
ping(AdCode, BootTime, Province, City, EfkaVersion, KernelArch, Ips, CpuCore, CpuLoad, CpuTemperature, Disk, Memory, Interfaces) ->
|
ping(AdCode, BootTime, Province, City, EfkaVersion, KernelArch, Ips, CpuCore, CpuLoad, CpuTemperature, Disk, Memory, Interfaces) ->
|
||||||
gen_server:cast(?SERVER, {ping, AdCode, BootTime, Province, City, EfkaVersion, KernelArch, Ips, CpuCore, CpuLoad, CpuTemperature, Disk, Memory, Interfaces}).
|
gen_server:cast(?SERVER, {ping, AdCode, BootTime, Province, City, EfkaVersion, KernelArch, Ips, CpuCore, CpuLoad, CpuTemperature, Disk, Memory, Interfaces}).
|
||||||
|
|
||||||
|
-spec feedback_phase(TaskId :: integer(), Timestamp :: integer(), Phase :: binary(), Code :: integer()) -> no_return().
|
||||||
feedback_phase(TaskId, Timestamp, Phase, Code) when is_integer(TaskId), is_integer(Timestamp), is_binary(Phase), is_integer(Code) ->
|
feedback_phase(TaskId, Timestamp, Phase, Code) when is_integer(TaskId), is_integer(Timestamp), is_binary(Phase), is_integer(Code) ->
|
||||||
gen_server:cast(?SERVER, {feedback_phase, TaskId, Timestamp, Phase, Code, <<"">>}).
|
gen_server:cast(?SERVER, {feedback_phase, TaskId, Timestamp, Phase, Code, <<"">>}).
|
||||||
|
|
||||||
|
-spec feedback_phase(TaskId :: integer(), Timestamp :: integer(), Phase :: binary(), Code :: integer(), Message :: binary()) -> no_return().
|
||||||
feedback_phase(TaskId, Timestamp, Phase, Code, Message) when is_integer(TaskId), is_integer(Timestamp), is_binary(Phase), is_integer(Code), is_binary(Message) ->
|
feedback_phase(TaskId, Timestamp, Phase, Code, Message) when is_integer(TaskId), is_integer(Timestamp), is_binary(Phase), is_integer(Code), is_binary(Message) ->
|
||||||
gen_server:cast(?SERVER, {feedback_phase, TaskId, Timestamp, Phase, Code, Message}).
|
gen_server:cast(?SERVER, {feedback_phase, TaskId, Timestamp, Phase, Code, Message}).
|
||||||
|
|
||||||
@ -83,7 +86,7 @@ start_link() ->
|
|||||||
init([]) ->
|
init([]) ->
|
||||||
erlang:process_flag(trap_exit, true),
|
erlang:process_flag(trap_exit, true),
|
||||||
erlang:start_timer(0, self(), create_transport),
|
erlang:start_timer(0, self(), create_transport),
|
||||||
{ok, #state{}}.
|
{ok, #state{status = ?STATE_DENIED}}.
|
||||||
|
|
||||||
%% @private
|
%% @private
|
||||||
%% @doc Handling call messages
|
%% @doc Handling call messages
|
||||||
@ -112,17 +115,12 @@ handle_cast({metric_data, ServiceId, LineProtocolData}, State = #state{status =
|
|||||||
metric = LineProtocolData
|
metric = LineProtocolData
|
||||||
}),
|
}),
|
||||||
|
|
||||||
case Status =:= ?STATE_ACTIVATED of
|
case Status =:= ?STATE_ACTIVATED andalso is_pid(TransportPid) of
|
||||||
true ->
|
true ->
|
||||||
efka_transport:send(TransportPid, ?METHOD_DATA, Packet);
|
efka_transport:send(TransportPid, ?METHOD_DATA, Packet);
|
||||||
false ->
|
false ->
|
||||||
ok = micro_cache_model:insert(#micro_cache {
|
ok = micro_cache_model:insert(?METHOD_DATA, Packet)
|
||||||
id = micro_cache_model:next_id(),
|
|
||||||
method = ?METHOD_DATA,
|
|
||||||
data = Packet
|
|
||||||
})
|
|
||||||
end,
|
end,
|
||||||
|
|
||||||
{noreply, State};
|
{noreply, State};
|
||||||
|
|
||||||
%% Event事件
|
%% Event事件
|
||||||
@ -137,11 +135,7 @@ handle_cast({event, ServiceId, EventType, Params}, State = #state{status = Statu
|
|||||||
true ->
|
true ->
|
||||||
efka_transport:send(TransportPid, ?METHOD_EVENT, EventPacket);
|
efka_transport:send(TransportPid, ?METHOD_EVENT, EventPacket);
|
||||||
false ->
|
false ->
|
||||||
ok = micro_cache_model:insert(#micro_cache {
|
ok = micro_cache_model:insert(?METHOD_EVENT, EventPacket)
|
||||||
id = micro_cache_model:next_id(),
|
|
||||||
method = ?METHOD_EVENT,
|
|
||||||
data = EventPacket
|
|
||||||
})
|
|
||||||
end,
|
end,
|
||||||
|
|
||||||
{noreply, State};
|
{noreply, State};
|
||||||
@ -158,11 +152,7 @@ handle_cast({ai_event, ServiceId, EventType, Params}, State = #state{status = St
|
|||||||
true ->
|
true ->
|
||||||
efka_transport:send(TransportPid, ?METHOD_AI_EVENT, EventPacket);
|
efka_transport:send(TransportPid, ?METHOD_AI_EVENT, EventPacket);
|
||||||
false ->
|
false ->
|
||||||
ok = micro_cache_model:insert(#micro_cache {
|
ok = micro_cache_model:insert(?METHOD_AI_EVENT, EventPacket)
|
||||||
id = micro_cache_model:next_id(),
|
|
||||||
method = ?METHOD_AI_EVENT,
|
|
||||||
data = EventPacket
|
|
||||||
})
|
|
||||||
end,
|
end,
|
||||||
|
|
||||||
{noreply, State};
|
{noreply, State};
|
||||||
@ -180,11 +170,7 @@ handle_cast({feedback_phase, TaskId, Timestamp, Phase, Code, Message}, State = #
|
|||||||
true ->
|
true ->
|
||||||
efka_transport:send(TransportPid, ?METHOD_PHASE, PhasePacket);
|
efka_transport:send(TransportPid, ?METHOD_PHASE, PhasePacket);
|
||||||
false ->
|
false ->
|
||||||
ok = micro_cache_model:insert(#micro_cache {
|
ok = micro_cache_model:insert(?METHOD_PHASE, PhasePacket)
|
||||||
id = micro_cache_model:next_id(),
|
|
||||||
method = ?METHOD_PHASE,
|
|
||||||
data = PhasePacket
|
|
||||||
})
|
|
||||||
end,
|
end,
|
||||||
|
|
||||||
{noreply, State};
|
{noreply, State};
|
||||||
|
|||||||
@ -303,7 +303,7 @@ handle_info({Port, {exit_status, Code}}, State = #state{service_id = ServiceId})
|
|||||||
%% 处理channel进程的退出
|
%% 处理channel进程的退出
|
||||||
handle_info({'DOWN', _Ref, process, ChannelPid, Reason}, State = #state{channel_pid = ChannelPid, service_id = ServiceId}) ->
|
handle_info({'DOWN', _Ref, process, ChannelPid, Reason}, State = #state{channel_pid = ChannelPid, service_id = ServiceId}) ->
|
||||||
lager:debug("[efka_micro_service] service: ~p, channel exited: ~p", [ServiceId, Reason]),
|
lager:debug("[efka_micro_service] service: ~p, channel exited: ~p", [ServiceId, Reason]),
|
||||||
{noreply, State#state{channel_pid = undefined}}.
|
{noreply, State#state{channel_pid = undefined, inflight = #{}}}.
|
||||||
|
|
||||||
%% @private
|
%% @private
|
||||||
%% @doc This function is called by a gen_server when it is about to
|
%% @doc This function is called by a gen_server when it is about to
|
||||||
|
|||||||
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
%% API
|
%% API
|
||||||
-export([create_table/0]).
|
-export([create_table/0]).
|
||||||
-export([insert/1, get_all_cache/0, fetch_next/0, delete/1, next_id/0]).
|
-export([insert/2, get_all_cache/0, fetch_next/0, delete/1, next_id/0]).
|
||||||
|
|
||||||
create_table() ->
|
create_table() ->
|
||||||
%% id生成器
|
%% id生成器
|
||||||
@ -29,8 +29,9 @@ create_table() ->
|
|||||||
next_id() ->
|
next_id() ->
|
||||||
id_generator_model:next_id(?TAB).
|
id_generator_model:next_id(?TAB).
|
||||||
|
|
||||||
-spec insert(MicroData0 :: #micro_cache{}) -> ok | {error, Reason :: any()}.
|
-spec insert(Method :: integer(), Data :: binary()) -> ok | {error, Reason :: any()}.
|
||||||
insert(Cache = #micro_cache{}) ->
|
insert(Method, Data) when is_integer(Method), is_binary(Data) ->
|
||||||
|
Cache = #micro_cache{id = next_id(), method = Method, data = Data},
|
||||||
case mnesia:transaction(fun() -> mnesia:write(?TAB, Cache, write) end) of
|
case mnesia:transaction(fun() -> mnesia:write(?TAB, Cache, write) end) of
|
||||||
{'atomic', ok} ->
|
{'atomic', ok} ->
|
||||||
ok;
|
ok;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user