`
yjl49
  • 浏览: 112917 次
社区版块
存档分类
最新评论

Erlang supervisor 中的simple_one_for_one

阅读更多

        Erlang 中的supervisor子进程的启动策略定义除了one_for_one、one_for_all、rest_for_one还有一种比较常用的simple_one_for_one。

        这种策略与one_for_one比较相似,但在supervisor:init中定义的子进程只能有一个,以后启动的子进程都是以这个为模板产生,且在supervisor 启动时不会主动启动任何子进程,需要自行使用supervisor:start_child 来启动。

        这么做的好处是明显的:例如一个接收客户端连接的socket supervisor进程在刚启动的时候是没有客户端连接上来的,后面也无法确定会有多少个连接上来。所以使用这种动态启动子进程的方式是最合适的。

 

init([Module]) ->
    {ok,
     {_SupFlags = {simple_one_for_one, ?MAX_RESTART, ?MAX_TIME},
      [
       %% TCP Client
       {undefined,
        {Module, start_link, []},
        temporary,
        2000,
        worker,
        []
       }
      ]
     }
    }.
分享到:
评论

相关推荐

    erlang四大behaviour之四-supervisor

    {ok, {{simple_one_for_one, 0, 1}, [{ch3, {ch3, start_link, []}, permanent, brutal_kill, worker, [ch3]}]}}. ``` 这里设置重启间隔为0秒,重启次数为1次。 #### 小结 Supervisor是Erlang并发编程中的重要...

    erlang语言实现binary_to_term完整代码

    erlang提供了binary_to_term 函数,用于把二进制数据转为原始的erlang数据。这个函数都是c实现的,这里用erlang语言实现了,很有参考价值,其他语言可以参考这个解析erlang二进制协议数据。配套文章地址...

    esl-erlang_23.0_windows_amd64.exe rabbitmq-server-3.8.4.exe

    esl-erlang_23.0和rabbitmq-3.8.4windows版本 直接下载安装...以及在path中设置ERLANG_HOME的bin目录 4. erlang安装后要检查能否编译成功一个helloworld文件。 5. rabbitMQ无法安装插件时非常有可能是erlang出问题了。

    Erlang otp_src_20.3.tar.gz

    在Erlang OTP 20.3中,开发者可以期待以下关键特性: 1. **性能提升**:每个新版本通常都会对性能进行优化,包括更快的垃圾回收、更高的并发效率以及更有效的内存管理。 2. **改进的错误处理**:Erlang OTP提供了...

    Erlang_x64_20.1

    在描述中提到,Erlang_x64_20.1是RabbitMQ环境配置必需的。RabbitMQ是一个开源的消息代理和队列服务器,它使用AMQP(Advanced Message Queuing Protocol)协议,允许应用程序之间异步传递消息。在部署RabbitMQ时,...

    erlang_otp_src_22.3.tar.gz

    4. **ETS (Erlang Term Storage)**:ETS 是一个内存中的数据库,用于快速访问和存储 Erlang 术语,适用于临时数据存储。 5. **Distributed Erlang**:Erlang 支持跨多台机器的分布式计算,通过节点间通信协议实现...

    esl-erlang_23.0_windows_amd64.exe

    这个erlang23.0版本,根据rabbitMQ官网的介绍,可以和下面这几个版本的rabbitMQ配合使用: 3.8.9 3.8.8 3.8.7 3.8.6 3.8.5 3.8.4 其他版本的rabbit,请移步其他资源下载

    erlang otp_src_20.2.tar.gz

    在本场景中,"otp_src_20.2.tar.gz" 是Erlang OTP 20.2版本的源代码包,适用于安装和配置RabbitMQ 3.7.3,这是一个基于Erlang的开源消息代理,常用于实现消息队列和发布/订阅模式的通信。 安装Erlang OTP源码步骤...

    最新版 erlang安装包 otp_src_21.3.tar.gz

    Erlang是一种强大的编程语言,尤其在分布式计算、并发处理和实时系统中有着广泛的应用。OTP(Open Telecom Platform)是Erlang的核心组件,提供了一系列的库和设计原则,用于构建可靠、可扩展的系统。在Linux CentOS...

    Erlang_win64_24.1.rar

    标题中的"Erlang_win64_24.1.rar"是指Erlang的64位Windows版,版本号为24.1.7。这个压缩包文件是专为在Windows操作系统上安装和运行Erlang而准备的,包含了所有必要的二进制文件和库,使得开发者可以在Windows平台上...

    erlang_otp_win64_25.0

    在"erlang_otp_win64_25.0"这个标题中,我们可以提取出几个关键点: 1. **Erlang**:这是一种函数式编程语言,以其在处理并发性和容错性方面的强大能力而闻名。Erlang的设计理念是让程序员能够轻松地构建能够并行...

    Erlang 安装包(otp_win32_R16B03-1.part2)

    Erlang 安装包(otp_win32_R16B03-1.part2)

    Erlang-win64_20.1

    在Erlang的20.1版本中,开发者可能会遇到一些关键的更新和改进,比如更好的性能、新的编程特性以及对老版本中一些已知问题的修复。对于Erlang程序员来说,了解每个版本的变更日志是非常重要的,以便充分利用新功能并...

    erlang_win64_22.0+rabbitmq3.8.2.rar

    标题中的"erlang_win64_22.0"指的是Erlang OTP(Open Telecom Platform)的第22.0版本,这个版本是为64位Windows操作系统设计的。OTP是Erlang的核心库,包含了大量用于构建可靠系统和网络服务的模块。 描述中提到,...

    erlang_otp_win64_20.3.zip

    是erlang_otp_20.3 的win64安装包,内为exe文件,一路next即可安装完成 ...变量名为ERLANG_HOME,变量值为安装Erlang的路径(路径中不要包含bin目录) 2.将新建的系统变量添加在Path中:格式为%ERLANG_HOME%\bin

    Erlang_B_model.rar_Erlang B _Erlang B model_Wireless Handbook_e

    在这个压缩包中,我们有一个名为"Erlang_B_model.pdf"的文件,它很可能是这样的手册的一部分,提供了关于Erlang B模型的理论、公式以及查表方法。 **Erlang B公式**表达了一个服务系统(如电话交换机)在固定数量的...

    Erlang_win64_24.2 64位 rabbitmq 必要环境

    标题“Erlang_win64_24.2 64位 rabbitmq 必要环境”暗示了我们讨论的是Erlang的特定版本——24.2,用于64位Windows操作系统,并且是运行RabbitMQ所必需的环境。RabbitMQ是一款开源的消息代理和队列服务器,它使用...

    Erlang-Formula.zip_Erlang B _Erlang-B_erlang_erlang B计算_erlang C

    Erlang B 和 Erlang C 是在电信领域中广泛使用的两个数学公式,用于预测和管理电话交换系统的呼叫处理能力。这两个公式由丹麦工程师 Agner Krarup Erlang 在20世纪初开发,对于理解通信系统中的呼叫占用率、阻塞率和...

    Erlang_win64_22.2.exe

    RabbitMQ为了搭建运行环境,erlang的官网下载实在太慢,当前最新版本提交到这里提供给大家和自己下载,Erlang_win64_22.2

    erlang-otp_win64_23.0.zip

    此版本为window64位下的,erlang23版本,erlang-otp_win64_23.0,官网原包,官网太难找了,好不容易找到,和大家分享下,需要的可以下载,也作为自己的一个记录吧,自己亲测很好用,erlang环境需要与对应的rabbitmq...

Global site tag (gtag.js) - Google Analytics