diff --git a/apps/iot/src/influxdb/influx_monitor_client_pool.erl b/apps/iot/src/influxdb/influx_monitor_client_pool.erl index 8b46aa2..c319339 100644 --- a/apps/iot/src/influxdb/influx_monitor_client_pool.erl +++ b/apps/iot/src/influxdb/influx_monitor_client_pool.erl @@ -76,6 +76,11 @@ init([]) -> %% 启动工作的线程池 {ok, PoolPid} = poolboy:start_link([{size, PoolSize}, {max_overflow, PoolSize}, {worker_module, influx_client}], WorkerArgs), + %% 创建bucket + poolboy:transaction(PoolPid, fun(ClientPid) -> + Result = create_bucket(ClientPid), + lager:debug("[influx_monitor_client_pool] org_name: ~p, create bucket result: ~p", [?DEFAULT_ORG, Result]) + end), %% 定时刷新逻辑 erlang:start_timer(5000, self(), flush_ticker), @@ -152,4 +157,12 @@ code_change(_OldVsn, State = #state{}, _Extra) -> %%%=================================================================== %%% Internal functions -%%%=================================================================== \ No newline at end of file +%%%=================================================================== + +%% 创建特殊的buckets +-spec create_bucket(ClientPid :: pid()) -> no_return(). +create_bucket(ClientPid) when is_pid(ClientPid) -> + {ok, Orgs} = influx_client:get_orgs(ClientPid), + OrgMap = maps:from_list(lists:map(fun(#{<<"name">> := Name, <<"id">> := Id}) -> {Name, Id} end, Orgs)), + OrgId = maps:get(?DEFAULT_ORG, OrgMap, <<"">>), + influx_client:create_bucket(ClientPid, OrgId, ?DEFAULT_BUCKET). \ No newline at end of file