diff --git a/apps/emqx_resource/src/emqx_resource_buffer_worker.erl b/apps/emqx_resource/src/emqx_resource_buffer_worker.erl index 279a141f5..5a08fff06 100644 --- a/apps/emqx_resource/src/emqx_resource_buffer_worker.erl +++ b/apps/emqx_resource/src/emqx_resource_buffer_worker.erl @@ -824,7 +824,7 @@ reply_dropped(_ReplyTo = {Fn, Args, #{reply_dropped := true}}, Result) when is_function(Fn), is_list(Args) -> %% We want to avoid bumping metrics inside the buffer worker, since it's costly. - spawn(fun() -> erlang:apply(Fn, Args ++ [Result]) end), + emqx_pool:async_submit(Fn, Args ++ [Result]), ok; reply_dropped(_ReplyTo, _Result) -> ok.