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
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.
##
## Value: Bytes

View File

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

View File

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