diff --git a/apps/emqx_connector/src/emqx_connector_jwt.erl b/apps/emqx_connector/src/emqx_connector_jwt.erl index dd74754ba..60b35ddbb 100644 --- a/apps/emqx_connector/src/emqx_connector_jwt.erl +++ b/apps/emqx_connector/src/emqx_connector_jwt.erl @@ -141,5 +141,5 @@ store_jwt(#{resource_id := ResourceId, table := TId}, JWT) -> is_about_to_expire(JWT) -> #jose_jwt{fields = #{<<"exp">> := Exp}} = jose_jwt:peek(JWT), Now = erlang:system_time(seconds), - GraceExp = Exp - timer:seconds(5), + GraceExp = Exp - 5, Now >= GraceExp. diff --git a/apps/emqx_connector/src/emqx_connector_resource.erl b/apps/emqx_connector/src/emqx_connector_resource.erl index 50b2132e2..8cb61793d 100644 --- a/apps/emqx_connector/src/emqx_connector_resource.erl +++ b/apps/emqx_connector/src/emqx_connector_resource.erl @@ -352,8 +352,10 @@ safe_atom(Bin) when is_binary(Bin) -> binary_to_existing_atom(Bin, utf8); safe_atom(Atom) when is_atom(Atom) -> Atom. parse_opts(Conf, Opts0) -> - Opts1 = override_start_after_created(Conf, Opts0), - set_no_buffer_workers(Opts1). + Opts1 = emqx_resource:fetch_creation_opts(Conf), + Opts2 = maps:merge(Opts1, Opts0), + Opts = override_start_after_created(Conf, Opts2), + set_no_buffer_workers(Opts). override_start_after_created(Config, Opts) -> Enabled = maps:get(enable, Config, true), diff --git a/apps/emqx_connector/test/emqx_connector_jwt_SUITE.erl b/apps/emqx_connector/test/emqx_connector_jwt_SUITE.erl index 6469614f8..aef0e660c 100644 --- a/apps/emqx_connector/test/emqx_connector_jwt_SUITE.erl +++ b/apps/emqx_connector/test/emqx_connector_jwt_SUITE.erl @@ -125,7 +125,7 @@ t_ensure_jwt(_Config) -> JWT0 = emqx_connector_jwt:ensure_jwt(JWTConfig), ?assertNot(is_expired(JWT0)), %% should refresh 5 s before expiration - ct:sleep(Expiration - 5500), + ct:sleep(Expiration - 3000), JWT1 = emqx_connector_jwt:ensure_jwt(JWTConfig), ?assertNot(is_expired(JWT1)), %% fully expired diff --git a/changes/ce/fix-13503.en.md b/changes/ce/fix-13503.en.md new file mode 100644 index 000000000..a4f0eb811 --- /dev/null +++ b/changes/ce/fix-13503.en.md @@ -0,0 +1 @@ +Fixed an issue where a connector wouldn't respect the configured health check interval when first starting up, and would need an update/restart for the correct value to take effect.