fix: allow to pass in Opts rather than just a ReplyTo
This commit is contained in:
parent
40dd34a704
commit
d71d70c889
|
@ -220,15 +220,14 @@ send_to_matched_egress_bridges(Topic, Msg) ->
|
||||||
send_message(BridgeId, Message) ->
|
send_message(BridgeId, Message) ->
|
||||||
{BridgeType, BridgeName} = emqx_bridge_resource:parse_bridge_id(BridgeId),
|
{BridgeType, BridgeName} = emqx_bridge_resource:parse_bridge_id(BridgeId),
|
||||||
ResId = emqx_bridge_resource:resource_id(BridgeType, BridgeName),
|
ResId = emqx_bridge_resource:resource_id(BridgeType, BridgeName),
|
||||||
send_message(BridgeType, BridgeName, ResId, Message, undefined).
|
send_message(BridgeType, BridgeName, ResId, Message, #{}).
|
||||||
|
|
||||||
send_message(BridgeType, BridgeName, ResId, Message, ReplyTo) ->
|
send_message(BridgeType, BridgeName, ResId, Message, QueryOpts0) ->
|
||||||
case emqx:get_config([?ROOT_KEY, BridgeType, BridgeName], not_found) of
|
case emqx:get_config([?ROOT_KEY, BridgeType, BridgeName], not_found) of
|
||||||
not_found ->
|
not_found ->
|
||||||
{error, bridge_not_found};
|
{error, bridge_not_found};
|
||||||
#{enable := true} = Config ->
|
#{enable := true} = Config ->
|
||||||
QueryOpts0 = query_opts(Config),
|
QueryOpts = maps:merge(query_opts(Config), QueryOpts0),
|
||||||
QueryOpts = QueryOpts0#{reply_to => ReplyTo},
|
|
||||||
emqx_resource:query(ResId, {send_message, Message}, QueryOpts);
|
emqx_resource:query(ResId, {send_message, Message}, QueryOpts);
|
||||||
#{enable := false} ->
|
#{enable := false} ->
|
||||||
{error, bridge_stopped}
|
{error, bridge_stopped}
|
||||||
|
|
|
@ -351,7 +351,9 @@ do_handle_action(RuleId, {bridge, BridgeType, BridgeName, ResId}, Selected, _Env
|
||||||
#{bridge_id => emqx_bridge_resource:bridge_id(BridgeType, BridgeName)}
|
#{bridge_id => emqx_bridge_resource:bridge_id(BridgeType, BridgeName)}
|
||||||
),
|
),
|
||||||
ReplyTo = {fun ?MODULE:inc_action_metrics/2, [RuleId]},
|
ReplyTo = {fun ?MODULE:inc_action_metrics/2, [RuleId]},
|
||||||
case emqx_bridge:send_message(BridgeType, BridgeName, ResId, Selected, ReplyTo) of
|
case
|
||||||
|
emqx_bridge:send_message(BridgeType, BridgeName, ResId, Selected, #{reply_to => ReplyTo})
|
||||||
|
of
|
||||||
{error, Reason} when Reason == bridge_not_found; Reason == bridge_stopped ->
|
{error, Reason} when Reason == bridge_not_found; Reason == bridge_stopped ->
|
||||||
throw(out_of_service);
|
throw(out_of_service);
|
||||||
Result ->
|
Result ->
|
||||||
|
|
Loading…
Reference in New Issue