EMQX消息存储Redis源码分析(2)

 emqx_backend_redis_sup模块作为应用的root 监听者,主要从配置文件读取数据,然后根据数据启动单机还是集群

-module(emqx_backend_redis_sup).

-include("../include/emqx_backend_redis.hrl").
-behaviour(supervisor).

-export([start_link/1]).

-export([init/1]).

%% 启动应用监听者
start_link(Pools) ->
  supervisor:start_link({local, emqx_backend_redis_sup}, emqx_backend_redis_sup, [Pools]).

%% 回调方法
init([Pools]) ->
%%  获取进程描述
  PoolSpec = lists:flatten([pool_spec(Pool, Env) || {Pool, Env} <- Pools]),
  {ok, {{one_for_one, 10, 100}, PoolSpec}}.

%% 进程池描述
pool_spec(Pool, Env) ->
  case proplists:get_value(type, Env) of
%%    集群模型
    cluster ->
      {ok, _} =
        eredis_cluster:start_pool(emqx_backend_redis:pool_name(Pool), Env), [];
%%    单机模式
    _ ->
      [sub_spec(Env), ecpool:pool_spec({emqx_backend_redis, Pool}, emqx_backend_redis:pool_name(Pool), emqx_backend_redis_cli, Env)]
  end.

sub_spec(Env) ->
  {emqx_backend_redis_sub, {emqx_backend_redis_sub, start_link, [Env]}, permanent, 5000, worker, [emqx_backend_redis_sub]}.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值