This commit is contained in:
anlicheng 2025-05-08 11:21:10 +08:00
parent 1855d632c5
commit e5cf3222df
4 changed files with 11 additions and 11 deletions

View File

@ -213,10 +213,10 @@ handle_info({auth_reply, {ok, ReplyBin}}, State = #state{status = ?STATE_AUTH, t
lager:debug("[efka_agent] auth failed, message: ~p", [Message]), lager:debug("[efka_agent] auth failed, message: ~p", [Message]),
%% %%
CacheItems = micro_cache_model:get_all_cache(), CacheItems = cache_model:get_all_cache(),
lists:foreach(fun(#micro_cache{id = Id, method = Method, data = Packet}) -> lists:foreach(fun(#micro_cache{id = Id, method = Method, data = Packet}) ->
efka_transport:send(TransportPid, Method, Packet), efka_transport:send(TransportPid, Method, Packet),
micro_cache_model:delete(Id) cache_model:delete(Id)
end, CacheItems), end, CacheItems),
{noreply, State#state{status = ?STATE_ACTIVATED}}; {noreply, State#state{status = ?STATE_ACTIVATED}};
@ -384,4 +384,4 @@ safe_response(_PacketId, _Reply, #state{}) ->
safe_send(Method, Packet, #state{status = ?STATE_ACTIVATED, transport_pid = TransportPid}) when is_pid(TransportPid) -> safe_send(Method, Packet, #state{status = ?STATE_ACTIVATED, transport_pid = TransportPid}) when is_pid(TransportPid) ->
efka_transport:send(TransportPid, Method, Packet); efka_transport:send(TransportPid, Method, Packet);
safe_send(Method, Packet, #state{}) -> safe_send(Method, Packet, #state{}) ->
ok = micro_cache_model:insert(Method, Packet). ok = cache_model:insert(Method, Packet).

View File

@ -34,6 +34,6 @@ start_mnesia() ->
lager:debug("[efka_app] tables: ~p", [Tables]), lager:debug("[efka_app] tables: ~p", [Tables]),
%% %%
not lists:member(id_generator, Tables) andalso id_generator_model:create_table(), not lists:member(id_generator, Tables) andalso id_generator_model:create_table(),
not lists:member(micro_service, Tables) andalso micro_service_model:create_table(), not lists:member(micro_service, Tables) andalso service_model:create_table(),
not lists:member(micro_data, Tables) andalso micro_data_model:create_table(), not lists:member(micro_data, Tables) andalso micro_data_model:create_table(),
ok. ok.

View File

@ -95,7 +95,7 @@ handle_cast(deploy, State = #state{task_id = TaskId, root_dir = RootDir, service
%% lock文件 %% lock文件
touch_lock(ServiceRootDir, TarUrl), touch_lock(ServiceRootDir, TarUrl),
%% %%
ok = micro_service_model:insert(#micro_service{ ok = service_model:insert(#micro_service{
service_id = ServiceId, service_id = ServiceId,
tar_url = TarUrl, tar_url = TarUrl,
%% %%

View File

@ -110,7 +110,7 @@ start_link(Name, ServiceId) when is_atom(Name), is_binary(ServiceId) ->
{ok, State :: #state{}} | {ok, State :: #state{}, timeout() | hibernate} | {ok, State :: #state{}} | {ok, State :: #state{}, timeout() | hibernate} |
{stop, Reason :: term()} | ignore). {stop, Reason :: term()} | ignore).
init([ServiceId]) -> init([ServiceId]) ->
case micro_service_model:get_service(ServiceId) of case service_model:get_service(ServiceId) of
error -> error ->
lager:notice("[efka_micro_service] service_id: ~p, not found", [ServiceId]), lager:notice("[efka_micro_service] service_id: ~p, not found", [ServiceId]),
ignore; ignore;
@ -151,7 +151,7 @@ init0(#micro_service{service_id = ServiceId, status = 0}, Manifest) ->
{stop, Reason :: term(), NewState :: #state{}}). {stop, Reason :: term(), NewState :: #state{}}).
%% channel %% channel
handle_call({attach_channel, ChannelPid}, _From, State = #state{channel_pid = OldChannelPid, service_id = ServiceId}) -> handle_call({attach_channel, ChannelPid}, _From, State = #state{channel_pid = OldChannelPid, service_id = ServiceId}) ->
Status = micro_service_model:get_status(ServiceId), Status = service_model:get_status(ServiceId),
case {Status, is_pid(OldChannelPid) andalso is_process_alive(OldChannelPid)} of case {Status, is_pid(OldChannelPid) andalso is_process_alive(OldChannelPid)} of
{1, false} -> {1, false} ->
erlang:monitor(process, ChannelPid), erlang:monitor(process, ChannelPid),
@ -164,7 +164,7 @@ handle_call({attach_channel, ChannelPid}, _From, State = #state{channel_pid = Ol
%% done %% done
handle_call(request_config, _From, State = #state{service_id = ServiceId, running_status = ?STATUS_RUNNING}) -> handle_call(request_config, _From, State = #state{service_id = ServiceId, running_status = ?STATUS_RUNNING}) ->
Params = micro_service_model:get_params(ServiceId), Params = service_model:get_params(ServiceId),
{reply, {ok, Params}, State}; {reply, {ok, Params}, State};
%% : %% :
@ -177,7 +177,7 @@ handle_call(start_service, _From, State = #state{running_status = ?STATUS_STOPPE
{os_pid, OSPid} = erlang:port_info(Port, os_pid), {os_pid, OSPid} = erlang:port_info(Port, os_pid),
lager:debug("start_service port: ~p, os_pid: ~p", [Port, OSPid]), lager:debug("start_service port: ~p, os_pid: ~p", [Port, OSPid]),
%% %%
ok = micro_service_model:change_status(ServiceId, 1), ok = service_model:change_status(ServiceId, 1),
{reply, ok, State#state{running_status = ?STATUS_RUNNING, port = Port, os_pid = OSPid}}; {reply, ok, State#state{running_status = ?STATUS_RUNNING, port = Port, os_pid = OSPid}};
{error, Reason} -> {error, Reason} ->
%% %%
@ -195,7 +195,7 @@ handle_call(stop_service, _From, State = #state{running_status = ?STATUS_RUNNING
erlang:is_port(Port) andalso erlang:port_close(Port), erlang:is_port(Port) andalso erlang:port_close(Port),
lager:debug("port: ~p, os_pid: ~p, will closed", [Port, OSPid]), lager:debug("port: ~p, os_pid: ~p, will closed", [Port, OSPid]),
ok = micro_service_model:change_status(ServiceId, 0), ok = service_model:change_status(ServiceId, 0),
{reply, ok, State#state{port = undefined, os_pid = undefined, running_status = ?STATUS_STOPPED}}; {reply, ok, State#state{port = undefined, os_pid = undefined, running_status = ?STATUS_STOPPED}};
@ -242,7 +242,7 @@ handle_cast(_Request, State = #state{}) ->
{stop, Reason :: term(), NewState :: #state{}}). {stop, Reason :: term(), NewState :: #state{}}).
%% %%
handle_info({timeout, _, reboot_service}, State = #state{service_id = ServiceId, manifest = Manifest}) -> handle_info({timeout, _, reboot_service}, State = #state{service_id = ServiceId, manifest = Manifest}) ->
case micro_service_model:get_status(ServiceId) of case service_model:get_status(ServiceId) of
0 -> 0 ->
lager:debug("[efka_micro_service] service_id: ~p, is stopped, ignore boot_service", [ServiceId]), lager:debug("[efka_micro_service] service_id: ~p, is stopped, ignore boot_service", [ServiceId]),
{noreply, State}; {noreply, State};