Merge pull request #8530 from HJianBo/fix-exhook-dispatch-seq

fix(exhook): ensuring that exhook dispatches the client events are sequential
This commit is contained in:
JianBo He 2022-07-22 10:43:00 +08:00 committed by GitHub
commit b9cd9e51ef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 20 additions and 6 deletions

View File

@ -14,6 +14,7 @@
* Fix AuthN JWKS SSL schema. Using schema in `emqx_schema`. [#8458](https://github.com/emqx/emqx/pull/8458)
* `sentinel` field should be required when AuthN/AuthZ Redis using sentinel mode. [#8458](https://github.com/emqx/emqx/pull/8458)
* Fix bad swagger format. [#8517](https://github.com/emqx/emqx/pull/8517)
* Ensuring that exhook dispatches the client events are sequential. [#8530](https://github.com/emqx/emqx/pull/8530)
## Enhancements

View File

@ -5,8 +5,7 @@
]}.
{deps, [
{emqx, {path, "../emqx"}},
{grpc, {git, "https://github.com/emqx/grpc-erl", {tag, "0.6.4"}}}
{emqx, {path, "../emqx"}}
]}.
{grpc, [

View File

@ -1,7 +1,7 @@
%% -*- mode: erlang -*-
{application, emqx_exhook, [
{description, "EMQX Extension for Hook"},
{vsn, "5.0.1"},
{vsn, "5.0.2"},
{modules, []},
{registered, []},
{mod, {emqx_exhook_app, []}},

View File

@ -369,8 +369,11 @@ match_topic_filter(TopicName, TopicFilter) ->
-spec do_call(binary(), atom(), atom(), map(), map()) -> {ok, map()} | {error, term()}.
do_call(ChannName, Hookpoint, Fun, Req, ReqOpts) ->
Options = ReqOpts#{channel => ChannName},
NReq = Req#{meta => emqx_exhook_handler:request_meta()},
Options = ReqOpts#{
channel => ChannName,
key_dispatch => key_dispatch(NReq)
},
?SLOG(debug, #{
msg => "do_call",
module => ?PB_CLIENT_MOD,
@ -481,3 +484,13 @@ available_hooks() ->
'session.terminated'
| message_hooks()
].
%% @doc Get dispatch_key for each request
key_dispatch(_Req = #{clientinfo := #{clientid := ClientId}}) ->
ClientId;
key_dispatch(_Req = #{conninfo := #{clientid := ClientId}}) ->
ClientId;
key_dispatch(_Req = #{message := #{from := From}}) ->
From;
key_dispatch(_Req) ->
self().

View File

@ -2,8 +2,7 @@
{erl_opts, [debug_info]}.
{deps, [
{emqx, {path, "../emqx"}},
{grpc, {git, "https://github.com/emqx/grpc-erl", {tag, "0.6.4"}}}
{emqx, {path, "../emqx"}}
]}.
{plugins, [

View File

@ -54,6 +54,7 @@ defmodule EMQXUmbrella.MixProject do
{:esockd, github: "emqx/esockd", tag: "5.9.3", override: true},
{:ekka, github: "emqx/ekka", tag: "0.13.2", override: true},
{:gen_rpc, github: "emqx/gen_rpc", tag: "2.8.1", override: true},
{:grpc, github: "emqx/grpc-erl", tag: "0.6.6", override: true},
{:minirest, github: "emqx/minirest", tag: "1.3.5", override: true},
{:ecpool, github: "emqx/ecpool", tag: "0.5.2"},
{:replayq, "0.3.4", override: true},

View File

@ -56,6 +56,7 @@
, {esockd, {git, "https://github.com/emqx/esockd", {tag, "5.9.3"}}}
, {ekka, {git, "https://github.com/emqx/ekka", {tag, "0.13.2"}}}
, {gen_rpc, {git, "https://github.com/emqx/gen_rpc", {tag, "2.8.1"}}}
, {grpc, {git, "https://github.com/emqx/grpc-erl", {tag, "0.6.6"}}}
, {minirest, {git, "https://github.com/emqx/minirest", {tag, "1.3.5"}}}
, {ecpool, {git, "https://github.com/emqx/ecpool", {tag, "0.5.2"}}}
, {replayq, "0.3.4"}