diff --git a/etc/emqx.conf b/etc/emqx.conf index d5850d513..2f03ec7c1 100644 --- a/etc/emqx.conf +++ b/etc/emqx.conf @@ -297,6 +297,14 @@ node.dist_listen_max = 6369 ## Value: sync | async rpc.mode = async +## Max batch size of async RPC requests. +## +## Value: Integer +## Zero or negative value disables rpc batching. +## +## NOTE: RPC batch won't work when rpc.mode = sync +rpc.async_batch_size = 256 + ## TCP server port for RPC. ## ## Value: Port [1024-65535] diff --git a/priv/emqx.schema b/priv/emqx.schema index b55da3f22..c7d6d0af5 100644 --- a/priv/emqx.schema +++ b/priv/emqx.schema @@ -344,6 +344,11 @@ end}. {datatype, {enum, [sync, async]}} ]}. +{mapping, "rpc.async_batch_size", "gen_rpc.max_batch_size", [ + {default, 256}, + {datatype, integer} +]}. + %% RPC server port. {mapping, "rpc.tcp_server_port", "gen_rpc.tcp_server_port", [ {default, 5369}, diff --git a/src/emqx_shared_sub.erl b/src/emqx_shared_sub.erl index d42fec7d3..3184fabb4 100644 --- a/src/emqx_shared_sub.erl +++ b/src/emqx_shared_sub.erl @@ -103,7 +103,7 @@ record(Group, Topic, SubPid) -> #emqx_shared_subscription{group = Group, topic = Topic, subpid = SubPid}. -spec(dispatch(emqx_topic:group(), emqx_topic:topic(), emqx_types:delivery()) - -> emqx_topic:deliver_result()). + -> emqx_types:deliver_result()). dispatch(Group, Topic, Delivery) -> dispatch(Group, Topic, Delivery, _FailedSubs = []).