From f42433e6096b1341426057bc0e9aaf1765a0a4d5 Mon Sep 17 00:00:00 2001 From: anlicheng <244108715@qq.com> Date: Wed, 7 May 2025 17:22:38 +0800 Subject: [PATCH] fix --- apps/efka/include/message_pb.hrl | 5 +- apps/efka/src/efka_agent.erl | 13 ++- apps/efka/src/efka_inetd.erl | 4 +- apps/efka/src/efka_inetd_task.erl | 9 +- apps/efka/src/proto/message_pb.erl | 137 ++++++++++++----------------- message_pb.proto | 6 +- 6 files changed, 74 insertions(+), 100 deletions(-) diff --git a/apps/efka/include/message_pb.hrl b/apps/efka/include/message_pb.hrl index a9fa305..9698fbb 100644 --- a/apps/efka/include/message_pb.hrl +++ b/apps/efka/include/message_pb.hrl @@ -119,9 +119,8 @@ -define('FEEDBACK_PHASE_PB_H', true). -record(feedback_phase, {task_id = <<>> :: unicode:chardata() | undefined, % = 1, optional - timestamp = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits - phase = <<>> :: unicode:chardata() | undefined, % = 3, optional - code = 0 :: integer() | undefined % = 4, optional, 32 bits + phase = <<>> :: unicode:chardata() | undefined, % = 2, optional + timestamp = 0 :: non_neg_integer() | undefined % = 3, optional, 32 bits }). -endif. diff --git a/apps/efka/src/efka_agent.erl b/apps/efka/src/efka_agent.erl index c6b9c28..bd3f8ff 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([metric_data/2, event/3, ai_event/3, ping/13, feedback_phase/4]). +-export([metric_data/2, event/3, ai_event/3, ping/13, feedback_phase/3]). %% gen_server callbacks -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]). @@ -51,9 +51,9 @@ metric_data(ServiceId, LineProtocolData) when is_binary(ServiceId), is_binary(Li 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) -> - gen_server:cast(?SERVER, {feedback_phase, TaskId, Timestamp, Phase, Code}). +-spec feedback_phase(TaskId :: integer(), Timestamp :: integer(), Phase :: binary()) -> no_return(). +feedback_phase(TaskId, Timestamp, Phase) when is_integer(TaskId), is_integer(Timestamp), is_binary(Phase) -> + gen_server:cast(?SERVER, {feedback_phase, TaskId, Timestamp, Phase}). -spec event(ServiceId :: binary(), EventType :: integer(), Params :: binary()) -> no_return(). event(ServiceId, EventType, Params) when is_binary(ServiceId), is_integer(EventType), is_binary(Params) -> @@ -136,12 +136,11 @@ handle_cast({ai_event, ServiceId, EventType, Params}, State) -> {noreply, State}; -handle_cast({feedback_phase, TaskId, Timestamp, Phase, Code}, State) -> +handle_cast({feedback_phase, TaskId, Timestamp, Phase}, State) -> PhasePacket = message_pb:encode_msg(#feedback_phase{ task_id = TaskId, timestamp = Timestamp, - phase = Phase, - code = Code + phase = Phase }), safe_send(?METHOD_PHASE, PhasePacket, State), diff --git a/apps/efka/src/efka_inetd.erl b/apps/efka/src/efka_inetd.erl index 1760c90..ccea44b 100644 --- a/apps/efka/src/efka_inetd.erl +++ b/apps/efka/src/efka_inetd.erl @@ -101,11 +101,11 @@ handle_info({'EXIT', TaskPid, Reason}, State = #state{task_map = TaskMap}) -> case Reason of normal -> lager:debug("[efka_inetd] service_id: ~p, task_pid: ~p, exit normal", [ServiceId, TaskPid]), - efka_agent:feedback_phase(TaskId, efka_util:timestamp(), <<"completed">>, 1); + efka_agent:feedback_phase(TaskId, efka_util:timestamp(), <<"task completed">>, 1); Error -> lager:debug("[efka_inetd] service_id: ~p, task_pid: ~p, exit with error: ~p", [ServiceId, TaskPid, Error]), %% 下载完整 - efka_agent:feedback_phase(TaskId, efka_util:timestamp(), <<"aborted">>, 0), + efka_agent:feedback_phase(TaskId, efka_util:timestamp(), <<"task aborted">>, 0), {noreply, State#state{task_map = NTaskMap}} end end; diff --git a/apps/efka/src/efka_inetd_task.erl b/apps/efka/src/efka_inetd_task.erl index 613df7e..7a76a25 100644 --- a/apps/efka/src/efka_inetd_task.erl +++ b/apps/efka/src/efka_inetd_task.erl @@ -84,7 +84,7 @@ handle_cast(deploy, State = #state{task_id = TaskId, root_dir = RootDir, service ok -> case download(binary_to_list(TarUrl), ServiceRootDir) of {ok, TarFile} -> - efka_agent:feedback_phase(TaskId, efka_util:timestamp(), <<"download">>, 1), + efka_agent:feedback_phase(TaskId, efka_util:timestamp(), <<"download completed">>), {ok, WorkDir} = make_work_dir(ServiceRootDir), %% 清理目录下的文件 Result = delete_directory(WorkDir), @@ -109,20 +109,23 @@ handle_cast(deploy, State = #state{task_id = TaskId, root_dir = RootDir, service %% 正常启动服务 case boot_service(ServiceId) of {ok, Pid} when is_pid(Pid) -> - efka_agent:feedback_phase(TaskId, efka_util:timestamp(), <<"boot">>, 1), + efka_agent:feedback_phase(TaskId, efka_util:timestamp(), <<"boot success">>), {stop, normal, State}; {error, Reason} -> - efka_agent:feedback_phase(TaskId, efka_util:timestamp(), <<"boot">>, 0), + efka_agent:feedback_phase(TaskId, efka_util:timestamp(), <<"boot failed">>), {stop, {error, Reason}, State} end; {error, Reason} -> + efka_agent:feedback_phase(TaskId, efka_util:timestamp(), <<"tar decompression error">>), {stop, {error, Reason}, State} end; {error, Reason} -> + efka_agent:feedback_phase(TaskId, efka_util:timestamp(), <<"download error">>), {stop, {error, Reason}, State} end; {error, Reason} -> lager:debug("[efka_inetd] check_download_url: ~p, get error: ~p", [TarUrl, Reason]), + efka_agent:feedback_phase(TaskId, efka_util:timestamp(), <<"download url error">>), {stop, {error, <<"download url error">>}, State} end end. diff --git a/apps/efka/src/proto/message_pb.erl b/apps/efka/src/proto/message_pb.erl index b90fc60..3c01aae 100644 --- a/apps/efka/src/proto/message_pb.erl +++ b/apps/efka/src/proto/message_pb.erl @@ -572,7 +572,7 @@ encode_msg_service_inform(#service_inform{service_id = F1, props = F2, status = encode_msg_feedback_phase(Msg, TrUserData) -> encode_msg_feedback_phase(Msg, <<>>, TrUserData). -encode_msg_feedback_phase(#feedback_phase{task_id = F1, timestamp = F2, phase = F3, code = F4}, Bin, TrUserData) -> +encode_msg_feedback_phase(#feedback_phase{task_id = F1, phase = F2, timestamp = F3}, Bin, TrUserData) -> B1 = if F1 == undefined -> Bin; true -> begin @@ -587,27 +587,18 @@ encode_msg_feedback_phase(#feedback_phase{task_id = F1, timestamp = F2, phase = true -> begin TrF2 = id(F2, TrUserData), - if TrF2 =:= 0 -> B1; - true -> e_varint(TrF2, <>, TrUserData) + case is_empty_string(TrF2) of + true -> B1; + false -> e_type_string(TrF2, <>, TrUserData) end end end, - B3 = if F3 == undefined -> B2; - true -> - begin - TrF3 = id(F3, TrUserData), - case is_empty_string(TrF3) of - true -> B2; - false -> e_type_string(TrF3, <>, TrUserData) - end - end - end, - if F4 == undefined -> B3; + if F3 == undefined -> B2; true -> begin - TrF4 = id(F4, TrUserData), - if TrF4 =:= 0 -> B3; - true -> e_type_int32(TrF4, <>, TrUserData) + TrF3 = id(F3, TrUserData), + if TrF3 =:= 0 -> B2; + true -> e_varint(TrF3, <>, TrUserData) end end end. @@ -1651,70 +1642,63 @@ skip_32_service_inform(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, skip_64_service_inform(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_service_inform(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). -decode_msg_feedback_phase(Bin, TrUserData) -> dfp_read_field_def_feedback_phase(Bin, 0, 0, 0, id(<<>>, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), TrUserData). +decode_msg_feedback_phase(Bin, TrUserData) -> dfp_read_field_def_feedback_phase(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), TrUserData). -dfp_read_field_def_feedback_phase(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_feedback_phase_task_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dfp_read_field_def_feedback_phase(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_feedback_phase_timestamp(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dfp_read_field_def_feedback_phase(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_feedback_phase_phase(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dfp_read_field_def_feedback_phase(<<32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_feedback_phase_code(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dfp_read_field_def_feedback_phase(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, _) -> #feedback_phase{task_id = F@_1, timestamp = F@_2, phase = F@_3, code = F@_4}; -dfp_read_field_def_feedback_phase(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dg_read_field_def_feedback_phase(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). +dfp_read_field_def_feedback_phase(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_feedback_phase_task_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_feedback_phase(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_feedback_phase_phase(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_feedback_phase(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_feedback_phase_timestamp(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_feedback_phase(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #feedback_phase{task_id = F@_1, phase = F@_2, timestamp = F@_3}; +dfp_read_field_def_feedback_phase(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_feedback_phase(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -dg_read_field_def_feedback_phase(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 32 - 7 -> dg_read_field_def_feedback_phase(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -dg_read_field_def_feedback_phase(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F@_4, TrUserData) -> +dg_read_field_def_feedback_phase(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_feedback_phase(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +dg_read_field_def_feedback_phase(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> Key = X bsl N + Acc, case Key of - 10 -> d_field_feedback_phase_task_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); - 16 -> d_field_feedback_phase_timestamp(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); - 26 -> d_field_feedback_phase_phase(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); - 32 -> d_field_feedback_phase_code(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); + 10 -> d_field_feedback_phase_task_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 18 -> d_field_feedback_phase_phase(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 24 -> d_field_feedback_phase_timestamp(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); _ -> case Key band 7 of - 0 -> skip_varint_feedback_phase(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); - 1 -> skip_64_feedback_phase(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); - 2 -> skip_length_delimited_feedback_phase(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); - 3 -> skip_group_feedback_phase(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); - 5 -> skip_32_feedback_phase(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData) + 0 -> skip_varint_feedback_phase(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 1 -> skip_64_feedback_phase(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 2 -> skip_length_delimited_feedback_phase(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 3 -> skip_group_feedback_phase(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 5 -> skip_32_feedback_phase(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) end end; -dg_read_field_def_feedback_phase(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, _) -> #feedback_phase{task_id = F@_1, timestamp = F@_2, phase = F@_3, code = F@_4}. +dg_read_field_def_feedback_phase(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #feedback_phase{task_id = F@_1, phase = F@_2, timestamp = F@_3}. -d_field_feedback_phase_task_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_feedback_phase_task_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -d_field_feedback_phase_task_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, F@_4, TrUserData) -> +d_field_feedback_phase_task_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_feedback_phase_task_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_feedback_phase_task_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) -> {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_feedback_phase(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, TrUserData). + dfp_read_field_def_feedback_phase(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). -d_field_feedback_phase_timestamp(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_feedback_phase_timestamp(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -d_field_feedback_phase_timestamp(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, F@_4, TrUserData) -> +d_field_feedback_phase_phase(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_feedback_phase_phase(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_feedback_phase_phase(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_feedback_phase(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). + +d_field_feedback_phase_timestamp(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_feedback_phase_timestamp(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_feedback_phase_timestamp(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_feedback_phase(RestF, 0, 0, F, F@_1, NewFValue, F@_3, F@_4, TrUserData). + dfp_read_field_def_feedback_phase(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). -d_field_feedback_phase_phase(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_feedback_phase_phase(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -d_field_feedback_phase_phase(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, F@_4, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_feedback_phase(RestF, 0, 0, F, F@_1, F@_2, NewFValue, F@_4, TrUserData). +skip_varint_feedback_phase(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_feedback_phase(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +skip_varint_feedback_phase(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_feedback_phase(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -d_field_feedback_phase_code(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_feedback_phase_code(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -d_field_feedback_phase_code(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, _, TrUserData) -> - {NewFValue, RestF} = {begin <> = <<(X bsl N + Acc):32/unsigned-native>>, id(Res, TrUserData) end, Rest}, - dfp_read_field_def_feedback_phase(RestF, 0, 0, F, F@_1, F@_2, F@_3, NewFValue, TrUserData). - -skip_varint_feedback_phase(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> skip_varint_feedback_phase(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -skip_varint_feedback_phase(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_feedback_phase(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). - -skip_length_delimited_feedback_phase(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> skip_length_delimited_feedback_phase(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); -skip_length_delimited_feedback_phase(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> +skip_length_delimited_feedback_phase(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_feedback_phase(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +skip_length_delimited_feedback_phase(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_feedback_phase(Rest2, 0, 0, F, F@_1, F@_2, F@_3, F@_4, TrUserData). + dfp_read_field_def_feedback_phase(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). -skip_group_feedback_phase(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, F@_4, TrUserData) -> +skip_group_feedback_phase(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_feedback_phase(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, F@_4, TrUserData). + dfp_read_field_def_feedback_phase(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). -skip_32_feedback_phase(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_feedback_phase(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). +skip_32_feedback_phase(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_feedback_phase(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -skip_64_feedback_phase(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_feedback_phase(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). +skip_64_feedback_phase(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_feedback_phase(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). decode_msg_event(Bin, TrUserData) -> dfp_read_field_def_event(Bin, 0, 0, 0, id(<<>>, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), TrUserData). @@ -2119,22 +2103,18 @@ merge_msg_service_inform(#service_inform{service_id = PFservice_id, props = PFpr end}. -compile({nowarn_unused_function,merge_msg_feedback_phase/3}). -merge_msg_feedback_phase(#feedback_phase{task_id = PFtask_id, timestamp = PFtimestamp, phase = PFphase, code = PFcode}, #feedback_phase{task_id = NFtask_id, timestamp = NFtimestamp, phase = NFphase, code = NFcode}, _) -> +merge_msg_feedback_phase(#feedback_phase{task_id = PFtask_id, phase = PFphase, timestamp = PFtimestamp}, #feedback_phase{task_id = NFtask_id, phase = NFphase, timestamp = NFtimestamp}, _) -> #feedback_phase{task_id = if NFtask_id =:= undefined -> PFtask_id; true -> NFtask_id end, - timestamp = - if NFtimestamp =:= undefined -> PFtimestamp; - true -> NFtimestamp - end, phase = if NFphase =:= undefined -> PFphase; true -> NFphase end, - code = - if NFcode =:= undefined -> PFcode; - true -> NFcode + timestamp = + if NFtimestamp =:= undefined -> PFtimestamp; + true -> NFtimestamp end}. -compile({nowarn_unused_function,merge_msg_event/3}). @@ -2393,18 +2373,15 @@ v_msg_service_inform(X, Path, _TrUserData) -> mk_type_error({expected_msg, servi -compile({nowarn_unused_function,v_msg_feedback_phase/3}). -dialyzer({nowarn_function,v_msg_feedback_phase/3}). -v_msg_feedback_phase(#feedback_phase{task_id = F1, timestamp = F2, phase = F3, code = F4}, Path, TrUserData) -> +v_msg_feedback_phase(#feedback_phase{task_id = F1, phase = F2, timestamp = F3}, Path, TrUserData) -> if F1 == undefined -> ok; true -> v_type_string(F1, [task_id | Path], TrUserData) end, if F2 == undefined -> ok; - true -> v_type_uint32(F2, [timestamp | Path], TrUserData) + true -> v_type_string(F2, [phase | Path], TrUserData) end, if F3 == undefined -> ok; - true -> v_type_string(F3, [phase | Path], TrUserData) - end, - if F4 == undefined -> ok; - true -> v_type_int32(F4, [code | Path], TrUserData) + true -> v_type_uint32(F3, [timestamp | Path], TrUserData) end, ok; v_msg_feedback_phase(X, Path, _TrUserData) -> mk_type_error({expected_msg, feedback_phase}, X, Path). @@ -2564,9 +2541,8 @@ get_msg_defs() -> #field{name = timestamp, fnum = 4, rnum = 5, type = uint32, occurrence = optional, opts = []}]}, {{msg, feedback_phase}, [#field{name = task_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, - #field{name = timestamp, fnum = 2, rnum = 3, type = uint32, occurrence = optional, opts = []}, - #field{name = phase, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}, - #field{name = code, fnum = 4, rnum = 5, type = int32, occurrence = optional, opts = []}]}, + #field{name = phase, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, + #field{name = timestamp, fnum = 3, rnum = 4, type = uint32, occurrence = optional, opts = []}]}, {{msg, event}, [#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = event_type, fnum = 2, rnum = 3, type = uint32, occurrence = optional, opts = []}, @@ -2647,9 +2623,8 @@ find_msg_def(service_inform) -> #field{name = timestamp, fnum = 4, rnum = 5, type = uint32, occurrence = optional, opts = []}]; find_msg_def(feedback_phase) -> [#field{name = task_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, - #field{name = timestamp, fnum = 2, rnum = 3, type = uint32, occurrence = optional, opts = []}, - #field{name = phase, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}, - #field{name = code, fnum = 4, rnum = 5, type = int32, occurrence = optional, opts = []}]; + #field{name = phase, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, + #field{name = timestamp, fnum = 3, rnum = 4, type = uint32, occurrence = optional, opts = []}]; find_msg_def(event) -> [#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = event_type, fnum = 2, rnum = 3, type = uint32, occurrence = optional, opts = []}, diff --git a/message_pb.proto b/message_pb.proto index 5373ece..c332cc8 100644 --- a/message_pb.proto +++ b/message_pb.proto @@ -104,10 +104,8 @@ message ServiceInform { // 任务部署阶段反馈 message FeedbackPhase { string task_id = 1; - uint32 timestamp = 2; - string phase = 3; - // 0 标识失败, 1 成功 - int32 code = 4; + string phase = 2; + uint32 timestamp = 3; } message Event {