From 4d4ec3ad5f5a267a8b254da16de6e768a8b3bf67 Mon Sep 17 00:00:00 2001 From: anlicheng <244108715@qq.com> Date: Tue, 6 May 2025 15:55:12 +0800 Subject: [PATCH] fix --- apps/efka/src/efka_agent.erl | 7 ++---- apps/efka/src/efka_inetd.erl | 44 +++++++++++++++++++++++++++++++++--- message_pb.proto | 1 + 3 files changed, 44 insertions(+), 8 deletions(-) diff --git a/apps/efka/src/efka_agent.erl b/apps/efka/src/efka_agent.erl index 1864b62..2f80ca6 100644 --- a/apps/efka/src/efka_agent.erl +++ b/apps/efka/src/efka_agent.erl @@ -16,7 +16,7 @@ %% API -export([start_link/0]). --export([data/5, event/2, ai_event/2]). +-export([data/5, event/2, ai_event/2, feedback_phase/1]). %% gen_server callbacks -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]). @@ -63,10 +63,7 @@ ping(AdCode, BootTime, Province, City, EfkaVersion, KernelArch, Ips, CpuCore, Cp }, gen_server:cast(?SERVER, {ping, Ping}). -service_inform() -> - ok. - -feedback_step() -> +feedback_phase(Phase) -> ok. feedback_result() -> diff --git a/apps/efka/src/efka_inetd.erl b/apps/efka/src/efka_inetd.erl index d3482cb..fea9b20 100644 --- a/apps/efka/src/efka_inetd.erl +++ b/apps/efka/src/efka_inetd.erl @@ -11,6 +11,7 @@ -module(efka_inetd). -author("anlicheng"). -include("efka_tables.hrl"). +-include("message_pb.hrl"). -behaviour(gen_server). @@ -124,15 +125,53 @@ handle_info({'DOWN', Ref, process, _Pid, Reason}, State = #state{task_map = Task %% 汇报taskId的执行进度 case Reason of normal -> + %% 下载完整 + DownloadPhase = #feedback_phase{ + task_id = TaskId, + timestamp = efka_util:timestamp(), + phase = <<"download">>, + code = 1, + message = <<"">> + }, + efka_agent:feedback_phase(DownloadPhase), + %% 正常启动服务 case start_service(Service) of - {ok, Pid} -> + {ok, Pid} when is_pid(Pid) -> + BootPhase = #feedback_phase{ + task_id = TaskId, + timestamp = efka_util:timestamp(), + phase = <<"boot">>, + code = 1, + message = <<"">> + }, + efka_agent:feedback_phase(BootPhase), + micro_service_model:insert(Service#micro_service{status = 1}); {error, Reason} -> + BootPhase = #feedback_phase{ + task_id = TaskId, + timestamp = efka_util:timestamp(), + phase = <<"boot">>, + code = 0, + message = <<"启动失败"/utf8>> + }, + efka_agent:feedback_phase(BootPhase), + micro_service_model:insert(Service#micro_service{status = 0}) end; {error, Reason} -> lager:debug("[efka_inetd] service: ~p, download get error: ~p", [Reason]), + %% 下载完整 + DownloadPhase = #feedback_phase{ + task_id = TaskId, + timestamp = efka_util:timestamp(), + phase = <<"download">>, + code = 0, + message = <<"下载失败"/utf8>> + }, + efka_agent:feedback_phase(DownloadPhase), + {noreply, State#state{task_map = NTaskMap}} end end; @@ -194,9 +233,8 @@ check_download_url(Url) when is_list(Url) -> {verify, verify_none} ]} ], - case httpc:request(head, {Url, []}, SslOpts, [{sync, true}]) of - {ok, {{_, 200, "OK"}, Headers, _}} -> + {ok, {{_, 200, "OK"}, _Headers, _}} -> ok; {error, Reason} -> {error, Reason} diff --git a/message_pb.proto b/message_pb.proto index 7db6c84..c77ae09 100644 --- a/message_pb.proto +++ b/message_pb.proto @@ -98,6 +98,7 @@ message FeedbackPhase { string task_id = 1; uint32 timestamp = 2; string phase = 3; + // 0 标识失败, 1 成功 uint32 code = 4; string message = 5; }