fix(rule_engine): re-enable rules after resource started
This commit is contained in:
parent
9fd43ef882
commit
3646e76a7a
|
@ -104,7 +104,8 @@ retry_loop(resource, ResId, Interval) ->
|
||||||
try
|
try
|
||||||
{ok, #resource_type{on_create = {M, F}}} =
|
{ok, #resource_type{on_create = {M, F}}} =
|
||||||
emqx_rule_registry:find_resource_type(Type),
|
emqx_rule_registry:find_resource_type(Type),
|
||||||
emqx_rule_engine:init_resource(M, F, ResId, Config)
|
ok = emqx_rule_engine:init_resource(M, F, ResId, Config),
|
||||||
|
enable_rules_of_resource(ResId)
|
||||||
catch
|
catch
|
||||||
Err:Reason:ST ->
|
Err:Reason:ST ->
|
||||||
?LOG(warning, "init_resource failed: ~p, ~0p",
|
?LOG(warning, "init_resource failed: ~p, ~0p",
|
||||||
|
@ -115,3 +116,10 @@ retry_loop(resource, ResId, Interval) ->
|
||||||
not_found ->
|
not_found ->
|
||||||
ok
|
ok
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
enable_rules_of_resource(ResId) ->
|
||||||
|
lists:foreach(
|
||||||
|
fun (#rule{enabled = false} = Rule) ->
|
||||||
|
emqx_rule_registry:add_rule(Rule#rule{enabled = false});
|
||||||
|
(_) -> ok
|
||||||
|
end, emqx_rule_registry:find_rules_depends_on_resource(ResId)).
|
||||||
|
|
Loading…
Reference in New Issue