erlang的监控树之重启

Erlang安装、启动和关闭、配置开发环境以及运行程序 通过本文,我们学习了如何安装、启动和关闭Erlang,配置开发环境,并编写和运行简单的Erlang程序。Erlang是一种功能强大的编程语言,具有出色的并发性能和分布式编程能力,适用于构建高可用性和可伸缩性的应用程序。在Windows系统中,可以通过在开始菜单中找到Erlang安装目录,并运行"Start Erlang"或"Start Erlang Shell"来启动Erlang Shell。本文将详细介绍如何安装、启动和关闭Erlang,配置开发环境,并演示如何编写和运行简单的Erlang程序。 阅读详情
     最近在开发过程中遇到一个问题,大概是这样的,原先一个worker进程,现在要改成可以随时去掉,也可以随时在重启,这个进程的supervisor是one_for_one类型的,如果不改变supervisor的类型(代码里面很多都是用这个supervisor的,改supervisor不好),这样就引发了一个问题,实验证明如下:
    如果一个supervisor是simple_one_for_one,你无论使用多少次supervisor:start_child(Super, Arg)都不会有问题,但是如果是其他的,比如one_for_one,使用supervisor:start_child(Super, {ID, {M, F, A}, Restart, ShutDown, Type, Args}),只要ID一样第二次就报错了,[{error,{already_started,<0.844.0>}}]。其实很好理解one_for_one的情况下,ChildID什么的都是自己定好的,如果相同的ChildID,spervisor不会接受。simple_one_for_one什么的是动态加载的,ID什么的应该他内部有方法解决了。
    既然如此那么解决方法也就有了,弄一个simple_one_for_one的supervisor,那个需要随时重启和去掉的worker进程就挂载在这个新的supervisor下,这样就能解决ChildID冲突了。如果偷懒不想新弄一个supevisor,那就在start这个worker前,加上supervisor:delete_child(Super, ChildID)。这个东西的作用就是,如果ChildID的进程是running或者restart的,那就会返回错误;如果ChildID的进程是死的,那就会释放这个ChildID给下次start_child时候用。
    还有一个需要注意的是,既然要随时去掉和重启,那么start_child的参数什么的要注意了,设置重启策略为不重启或者其他,具体参数解释:传送门http://blog.youkuaiyun.com/xum2008/article/details/9288411 ;
CANbus收发器TJA1051T/3/1J应用原理图设计 该收发器是为汽车工业中的高速CAN应用而设计的,为(一个带有)CAN协议控制器的微控制器)提供差分传输和接收能力。它提供了改进的电磁兼容性(EMC)和静电放电(ESD)性能,还具有:当电源电压关闭时,TJA1051T/3和TJA1051TK/3可以直接与电源电压从3V到5V的微控制器接口。这种实现能够在CAN FD快速阶段以高达5 Mbit/s的数据速率进行可靠的通信。TJA1051T/3和TJA1051TK/3上的VIO输入允许直接连接3 V至5 V微控制器(分别提供SO8和极小的HVSON8封装) 阅读详情

相关推荐

Qt + Robot Interface实现上位机和发那科机器人通信

摘要: 本文详细介绍了FANUC机器人的RobotInterface模块开发流程,包括环境配置、通信连接和上位机开发等内容,并提供了数值寄存器、位置寄存器和当前位置的读写代码等示例。适用于自动化行业有通讯需求的上位机开发人员,保姆教程,超详细版,新手也可以根据示例开发自己的通信程序。

xyhkma的博客 1750

erlang重启策略

1. one_for_all: 父进程的所有子进程全部重启 2. rest_for_one: 父进程下的在该进程后面启动的进程全部重启 3. one_for_one: 只有该进程重启,别的进程不受影响 4. simple_one_for_one: 用来修饰supervisor,非gen_server。该策略在系统启动时静态只启动一个,后面都是通过supervisor:start_child方法启动。该种策略常常用于收到客户...

689

Copula函数

Copula是处理统计中随机变量相关性问题的一种方法。本文是对Copula函数的各种定义,Copula函数的思想,Copula函数的性质,Copula函数的类型等理论资料总结

Explore 5万+

Erlang系统原理

<br />转载:http://blog.youkuaiyun.com/krh2001/archive/2009/06/22/4287962.aspxErlang 系统原理<br /> <br />版本 5.7.1<br />翻译:krh2001<br /><br /><br /> <br />1 系统原理<br />1.1 启动系统<br />一个Erlang 运行时系统可通过命令erl 来启动:<br />% erl<br />Erlang (BEAM) emulator version 5.2.3.5 [hipe

zhangxinrun的专栏 2087

ARIMA模型的R实现

1.模型简介 ARIMA模型,全称差分自回归移动平均模型。可以看作是差分运算和ARMA模型的结合。主要是针对具有线性趋势的非平稳的时间序列,来进行建模预测。 ARIMA模型的形式如下: Φ(B)∇

heirenmin的博客 1万+

逐行逐句进一步了解SurroundOcc(一)

通过分析中的模型构建过程,理解了从配置文件到模型实例化的整个流程。构建过程的核心是通过build和等函数,逐步将配置文件解析并生成模型的各个模块对象,最终组合成一个完整的模型结构。这一过程涉及多个类和函数的调用,其中函数是生成对象的关键,它能够从配置字典中提取必要信息并生成对应的类实例。

lovely_yoshino的博客 8112

关于安装Erlang配置完环境变量之后,每次电脑重新启动之后Erlang的命令erl -version失效的解决方法

关于Erlang的命令erl -version 在每次电脑重启之后,失效的解决方法 我们在安装完Erlang之后,就会设置它的环境变量,一般我们会将其这样设置 步骤一、先新建一个系统变量 变量名:ERLANG_HOME 变量值:D:\installSoftware\erl-23.0 步骤二、再在path中新建一个环境变量 %ERLANG_HOME%\bin 步骤三、接下来就是验证自己是否配置成功了,打开命令提示符输入以下命令 erl -version 如果一切正常则输出(如图): 但是

优快云_XHC的博客 3445

HC32 CAN通信

qqa

zhaopenglihui的博客 5434

erlang]supervisor(监控树)的重启策略

1. init函数 init() -> {ok, {SupFlags, [ChildSpec,...]}} | ignore. [ChildSpec,...] 是在init之后默认要启动的子进程。 2. SupFlags参数 {Type, Times, Sec} Type: 重启策略 one_for_one: 一个子进程终止,只重启该进...

weixin_33910385的博客 530

T100批处理作业开发

g_bgjob = ‘Y’ 后台执行g_bgjob = ‘N’ 前台执行。

weixin_43400895的博客 585

【个人成长笔记】在Ubuntu中安装RTL8188GU USB无线网卡驱动(Driver for Linux RTL8188GU)

这篇笔记提供了在Ubuntu系统中安装RTL8188GU无线网卡驱动的完整指南。主要内容包括:驱动程序的官方来源(Github链接)、详细安装步骤(通过git下载、编译安装等命令),以及将设备转换为USB网卡模式的关键指令。特别提醒每次开机都需要执行模式转换命令,因为设备默认会以U盘模式启动。文章以简洁的技术文档形式呈现,适合Linux用户快速查阅和操作。

yuhuasheng1997的博客 1827

[erlang]supervisor(监控树)的重启策略

1. init函数 init() -&gt; {ok, {SupFlags, [ChildSpec,...]}} | ignore. [ChildSpec,...] 是在init之后默认要启动的子进程。 2. SupFlags参数 {Type, Times, Sec} Type: 重启策略 one_for_one: 一个子进程终止,只重启该进程,在init的时候会启动参数内的子进程 s...

weixin_34413802的博客 396

金砖大赛-第二届网络安全防护治理实战技能大赛全国总决赛WP

格式进行md4加密,然后将小写的md4密文进行作为flag信息进行提交,提交格式为flag{MD4小写},例如调用频率异常高的user_id是user_xxx,使用的非公开模型名称是model-name,具体调用次数为10,那么按照格式,对user_xxx:model-name:10进行md4加密后,提交范例为:flag{dd00cb9e393f4a9ac639294b3cfe4d6a}挖矿木马是通过远程脚本进行部署的,请登录到失陷的服务器上,找到并分析挖矿木马是从那个远程IP下载的。

Laffrey的专栏 240

Supervisor Behaviour监控树

%一),监控树原理 %监控树负责启动,停止和监控子进程。 %监控树最基本的功能是保持子进程是活动的, %如果子进程意外停止,则必须重启它。 % %需要监控的子进程通过子进程描述列表来确定。 %子进程启动的顺序是其在子进程描述列表中的顺序, %子进程停止的顺序和启动的顺序相反。 % % %二),监控树实例: %监控树的回掉模块启动子进程gen_server, %gen_server的回调模块见Gen

727

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Erlang进程监控与重启策略,彻底搞懂“任其崩溃”哲学的智慧

掌握Erlang高可用设计精髓,深入解析进程监控与重启机制,揭示“任其崩溃”哲学在分布式系统中的实际应用。涵盖监督树、错误处理与容错架构,提升系统稳定性与恢复能力,值得收藏。

ProcePerch的博客 639

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

supervisor 监控树

erlang监控树 supervisor Supervisor Behaviour是一个用来实现一个supervisor进程来监控其他子进程的模块子进程可以是另一个supervisor,也可以是一个worker进程.worker进程一般使用gen_event,gen_fsm或gen_server behaviour来实现.一个使用该模块来实现的supervisor有一个接口方法的标准集,...

千古月 262

Erlang 面试和笔试题

Erlang 的垃圾回收机制(gc)原理? Erlang 的调度机制? Erlang 的监控树,重启策略? gen_server:call 的超时,对应的过程描述? gen_server:info 、gen_server:cast、gen_server:call 对应在什么情况下使用 Erlang 的进程通信和节点通信? Erlang 的epmd? 描述erlan...

qq_35200479的博客 3432

erlang supervisor

转载  http://www.cnblogs.com/me-sa/archive/2012/01/10/erlang0030.html Supervisors are used to build an hierarchical process structure called a supervision tree, a nice way to structure a fault

嵌入式相关 3294

erlang 监控树 supervisor

Supervisor Behaviour是一个用来实现一个supervisor进程来监控其他子进程的模块子进程可以是另一个supervisor,也可以是一个worker进程.worker进程一般使用gen_event,gen_fsm或gen_server behaviour来实现

bestpool的专栏 9047

Supervisor行为分析和实践

转载的这里 http://www.cnblogs.com/liuweiccy/p/4622075.html   1.简介     Erlang要编写高容错性、稳定性的系统,supervisor就是用来解决这一问题的核心思想。通过建立一颗监控树,来组织进程之间的关系,通过确定重启策略、子进程说明书等参数信息来确定佣程与督程的行为,以及在发生故障时的处理办法。简单介绍supervisor的API...

weixin_34152820的博客 314

监控树的构建与应用程序测试

监控器的工作是确保质数和面积服务器始终保持运行。为了做到这一点,就得编写另一个用于gen_supervisor的回调模块。虽然面积服务器发生了崩溃,但之后一切都恢复正常,就像构想的那样。这个数据结构定义了一种监控策略。之前讨论过监控策略和重启频率,现在剩下的就是面积。现在就有了一个能正常运行的系统。如果某个服务器崩溃了,就会被自动重启,错误日志。系统又能正常工作了。现在回到之前的方法中并构建一个监控树。服务器和质数服务器的启动格式了。先给这个监控器选一个名字,名为。里则会有关于这个错误的信息。

Kuaxs的博客 147

Erlang高可用系统设计:99.999%在线保障的5大关键策略

掌握Erlang高可用设计核心方法,实现99.999%在线保障。适用于分布式系统与实时通信场景,涵盖容错机制、热代码升级、监督树策略、节点集群管理与故障隔离五大关键实践。架构稳定高效,值得收藏。

BreakNexus的博客 649

理解Erlang/OTP Supervisor

http://www.cnblogs.com/me-sa/archive/2012/01/10/erlang0030.html Supervisors are used to build an hierarchical process structure called a supervision tree, a nice way to structure a fault tolerant app...

weixin_30485379的博客 250

ik_llama.cpp 的 Flash Attention 深度优化:更快的 V·softmax(K·Q) 与 Q8_0 KV-Cache 运行时重打包(PR 173 全解析)

本篇基于 ik_llama.cpp 仓库中 PR #173 记录 展开,深入解析该仓库对 Flash Attention(FA)的两项关键改进:更快的 `V * softmax(K * Q)` 计算路径,以及当 K-cache 采用 `Q8_0` 量化时通过"运行时重打包(run-time repacking)"为交错布局实现的加速。文章同时结合 [ggml 源码](https://link.gi

gitblog_00323的博客 714

Erlang/OTP错误处理和容错机制:Let It Crash哲学解析与实战指南

Erlang/OTP是构建高可用分布式系统的终极解决方案,其独特的"Let It Crash"哲学彻底改变了传统错误处理范式。作为电信级可靠性的基石,Erlang/OTP提供了一套完整的容错机制,让开发者能够构建99.999%可用性的系统。本文将深入解析Erlang/OTP的错误处理机制,从核心哲学到底层实现,为您展示如何利用这些机制构建坚不可摧的分布式应用。 ## 🚀 Let It Cras

gitblog_00292的博客 366

erlang学习:用OTP构建系统4,监控树学习

之前写的server程序,如果产生了错误,server会立刻停止。本次学习使用了监控树,能够让server崩溃时打印错误信息并重启服务器,能够使服务器正常使用。启动监控树后,就可以运行area_server与prime_server中的代码,如果产生错误则会进行提示并重启服务器。没有监控树,如果server崩溃,进程就挂掉了。服务器自动重启之后能够继续运行代码。

qq_52132912的博客 471
上一篇: Linux下TCP参数配置
下一篇: erlang分布式之节点自动连接相关问题
pyf725324
博客等级 码龄17年 6粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值