Improve the foce_gc_policy config.

This commit is contained in:
Feng Lee 2018-09-22 05:42:38 +08:00
parent e940c1c970
commit fbac9ce43e
3 changed files with 14 additions and 5 deletions

View File

@ -544,6 +544,12 @@ zone.external.enable_acl = on
## Value: on | off ## Value: on | off
zone.external.enable_stats = on zone.external.enable_stats = on
## Force MQTT connection/session process GC after this number of
## messages | bytes passed through.
##
## Numbers delimited by `|'. Zero or negative is to disable.
zone.external.force_gc_policy = 1000|1MB
## Maximum MQTT packet size allowed. ## Maximum MQTT packet size allowed.
## ##
## Value: Bytes ## Value: Bytes

View File

@ -828,7 +828,7 @@ end}.
%% messages | bytes passed through. %% messages | bytes passed through.
%% Numbers delimited by `|'. Zero or negative is to disable. %% Numbers delimited by `|'. Zero or negative is to disable.
{mapping, "zone.$name.force_gc_policy", "emqx.zones", [ {mapping, "zone.$name.force_gc_policy", "emqx.zones", [
{default, "0|0"}, {default, "0|0KB"},
{datatype, string} {datatype, string}
]}. ]}.
@ -841,8 +841,13 @@ end}.
{mqtt_shared_subscription, Val}; {mqtt_shared_subscription, Val};
("force_gc_policy", Val) -> ("force_gc_policy", Val) ->
[Count, Bytes] = string:tokens(Val, "| "), [Count, Bytes] = string:tokens(Val, "| "),
{force_gc_policy, #{count => list_to_integer(Count), GcPolicy = case cuttlefish_bytesize:parse(Bytes) of
bytes => list_to_integer(Bytes)}}; {error, Reason} ->
error(Reason);
Bytes1 ->
#{bytes => Bytes1, count => list_to_integer(Count)}
end,
{force_gc_policy, GcPolicy};
(Opt, Val) -> (Opt, Val) ->
{list_to_atom(Opt), Val} {list_to_atom(Opt), Val}
end, end,

View File

@ -21,8 +21,6 @@
-module(emqx_gc). -module(emqx_gc).
-author("Feng Lee <feng@emqtt.io>").
-export([init/1, inc/2, reset/0]). -export([init/1, inc/2, reset/0]).
-type st() :: #{ cnt => {integer(), integer()} -type st() :: #{ cnt => {integer(), integer()}