feat(ds): add `ensure_shard/2` shortcut

And use it in `emqx_persistent_session_ds:init()` backend initialization
function.
This commit is contained in:
Andrew Mayorov 2023-07-06 17:43:12 +02:00
parent ac56de9fc5
commit daf4e86da1
No known key found for this signature in database
GPG Key ID: 2837C62ACFBFED5D
2 changed files with 16 additions and 4 deletions

View File

@ -39,10 +39,9 @@
init() ->
?WHEN_ENABLED(
begin
_ = emqx_ds_storage_layer_sup:start_shard(?DS_SHARD),
ok
end
ok = emqx_ds:ensure_shard(?DS_SHARD, #{
dir => filename:join([emqx:data_dir(), ds, messages, ?DS_SHARD])
})
).
%%

View File

@ -16,6 +16,7 @@
-module(emqx_ds).
%% API:
-export([ensure_shard/2]).
%% Messages:
-export([message_store/2, message_store/1, message_stats/0]).
%% Iterator:
@ -79,6 +80,18 @@
%% API funcions
%%================================================================================
-spec ensure_shard(shard(), emqx_ds_storage_layer:options()) ->
ok | {error, _Reason}.
ensure_shard(Shard, Options) ->
case emqx_ds_storage_layer_sup:start_shard(Shard, Options) of
{ok, _Pid} ->
ok;
{error, {already_started, _Pid}} ->
ok;
{error, Reason} ->
{error, Reason}
end.
%%--------------------------------------------------------------------------------
%% Message
%%--------------------------------------------------------------------------------