From 0a99e835e782589f535be614d7620071bb4524c0 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Fri, 24 Jun 2022 14:34:40 +0800 Subject: [PATCH] fix: fallback action not triggered when send to webhook failed --- apps/emqx_rule_engine/src/emqx_rule_actions.erl | 3 ++- apps/emqx_web_hook/src/emqx_web_hook_actions.erl | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/apps/emqx_rule_engine/src/emqx_rule_actions.erl b/apps/emqx_rule_engine/src/emqx_rule_actions.erl index ae82d56c9..d665a0c96 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_actions.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_actions.erl @@ -175,7 +175,8 @@ on_action_republish(_Selected, Envs = #{ }) -> ?LOG(error, "[republish] recursively republish detected, msg topic: ~p, target topic: ~p", [Topic, ?bound_v('TargetTopic', Envs)]), - emqx_rule_metrics:inc_actions_error(?bound_v('Id', Envs)); + emqx_rule_metrics:inc_actions_error(?bound_v('Id', Envs)), + {badact, recursively_republish}; on_action_republish(Selected, _Envs = #{ qos := QoS, flags := Flags, timestamp := Timestamp, diff --git a/apps/emqx_web_hook/src/emqx_web_hook_actions.erl b/apps/emqx_web_hook/src/emqx_web_hook_actions.erl index aa0face38..ae68e79e1 100644 --- a/apps/emqx_web_hook/src/emqx_web_hook_actions.erl +++ b/apps/emqx_web_hook/src/emqx_web_hook_actions.erl @@ -268,13 +268,16 @@ on_action_data_to_webserver(Selected, _Envs = emqx_rule_metrics:inc_actions_success(Id); {ok, StatusCode, _} -> ?LOG(warning, "HTTP request failed with path: ~p status code: ~p", [NPath, StatusCode]), - emqx_rule_metrics:inc_actions_error(Id); + emqx_rule_metrics:inc_actions_error(Id), + {badact, StatusCode}; {ok, StatusCode, _, _} -> ?LOG(warning, "HTTP request failed with path: ~p status code: ~p", [NPath, StatusCode]), - emqx_rule_metrics:inc_actions_error(Id); + emqx_rule_metrics:inc_actions_error(Id), + {badact, StatusCode}; {error, Reason} -> ?LOG(error, "HTTP request failed path: ~p error: ~p", [NPath, Reason]), - emqx_rule_metrics:inc_actions_error(Id) + emqx_rule_metrics:inc_actions_error(Id), + {badact, Reason} end. format_msg([], Data) ->