Erlang 中处理 register 重复注册

-module(demo).
-compile(export_all).

foo() ->
    receive
    after 100000 ->
        io:format("ok~n")
    end.

main() ->
    register(name1, spawn(fun() -> foo() end)),
    case (catch register(name1, spawn(fun() -> foo() end))) of
        true -> true;
        _ -> io:format("error~n")
    end.

使用 catch 处理。因为是运行时错误。

注意 catch 被小括号括起,如若不然,会出错,出错原因为: ** 1: syntax error before: ‘catch‘ **

时间: 2024-08-01 23:50:38

Erlang 中处理 register 重复注册的相关文章

Spring Cloud中Eureka的服务注册

Eureka中的服务注册,分为服务注册中心,和服务注册这. 一,服务注册者 服务注册者在启动的时候会通过发送rest请求的方式将自己注册到Eureka Server上.Eureka Server将服务注册的原信息保存在双层结构的map上,第一层的key是服务名,第二层的key是具体服务实例名. 在注册完成后服务提供者会维护一个心跳用来持续的,调用续约服务的时间间隔通过eureka.Instance.less-renewal-interval-in-seconds来设置,默认是30秒. 要开启服务

Erlang中频繁发送远程消息要注意的问题

http://avindev.iteye.com/blog/76373 注:这篇文章可能会有争议,欢迎提出意见 在Erlang中,如果要实现两个远程节点之间的通信,就需要通过网络来实现,对于消息发送,是使用TCP.如果要在两个节点间频繁发送消息,比如每秒几百上千条,那样就要注意了. 无论是网游服务器开发的书籍,或是经验老道的工程师,都会告诉你,在发送数据包时,尽可能把小的消息组合为一个比较大的包来发送,毕竟一个TCP包的头也很大,首先是浪费带宽,其次调用底层发送的指令也是有开销的.有工程师告诉我

jquery click嵌套 事件重复注册 多次执行的问题解决

jquery click嵌套 事件重复注册 多次执行的问题解决 转载自新浪博客:http://blog.sina.com.cn/s/blog_4f925fc30100ln1o.html jquery click事件中嵌套click会重复注册内部的click事件,导致重复执行. 比如 $(...).click(function(){   $(...).click(function(){     ...//多次执行    }); });解决方法一: 每次执行完了,解除绑定,如$(...).click

Consul坑坑一人行之从入门到放弃,记Consul的重复注册、节点失效后无健康检查等坑。。。求解

环境: dotnet core 2.1 CentOS 7 由于听到Eureka2.X最近好像要凉的消息 所以昨天在尝试使用Consul替代Eureka来实现服务发现等功能 Consul使用HttpAPI注册服务 但是!!!! 发现几个非常恶心的地方,在这里分享出来,希望可以得到园子里各位大牛的指导. 坑1:同一个ServiceID 可以在多个节点上重复注册! 情况是这样,我对Consul进行了好多折腾, 首先,为了避免本地Consul挂了导致服务无法注册, 所以我对Consul的HTTP端口(8

分布式中几种服务注册与发现组件的原理与比较

Eureka.Consul.Zookeeper的基本原理与比较. 前言 在云计算和容器化技术发展火热的当下,对于微服务架构,服务注册与发现组件是必不可少的.在传统的服务架构中,服务的规模处于运维人员的可控范围内.当部署服务的多个节点时,一般使用静态配置的方式实现服务信息的设定.在微服务应用中,服务实例的数量和网络地址都是动态变化的,这对系统运维提出了巨大的挑战.因此,动态的服务注册与发现就显得尤为重要. 解决的问题 在一个分布式系统中,服务注册与发现组件主要解决两个问题:服务注册和服务发现. 服

SQL安装过程中“针对SQL Server 注册表的一致性验证“出错解决方式

1.打开注册表,查找到[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\0804],分别打开Counter 和Help 2.打开Counter,把滚动条拉倒最后,然后记下最大的那个值(不同计算机不一样的),记下后关闭窗口 3.同样的打开Help,滚动到最后记最大的那个值(你们的值不一定跟我一样的哦!!!),记下后关闭窗口 4,再重新定位到Perflib的节点上, 5.双击Last Counter然后在

字符串中连续出现最多的子串 & 字符串中最长重复子串

字符串中连续出现最多的子串 & 字符串中最长重复子串 字符串中连续出现最多的子串 & 字符串中最长重复子串,这两个问题都可以用后缀数组来表示,至于后缀数组可以参考编程珠玑P156:后缀数组就是定义一个数组指针,分别指向字符串中的对应位置,如下: a b c a b c a b c d e .substr[0] b c a b c a b c d e ....substr[1] c a b c a b c d e .......substr[2] a b c a b c d e ......

哈希(6) - 判断数组中是否存在重复元素且距离在K之内

给定一个包含多个重复元素的未排序的数组.另外给定一个数字k,且k小于数组大小.判断数组中是否包含重复元素,且它们相隔的距离处于范围k之内. 例如: Input: k = 3, arr[] = {1, 2, 3, 4, 1, 2, 3, 4} Output: false 所有重复元素的距离>k. Input: k = 3, arr[] = {1, 2, 3, 1, 4, 5} Output: true 存在重复元素1,且距离为3(==k). Input: k = 3, arr[] = {1, 2,

关于erlang中的进程字典(process dictionary)的新理解及其访问速度 (copy来的)

之前对于erlang的进程字典了解的不够清楚,只是知道put().get()函数,即存值和取值,而每个put.get中都有自己的一对Key--Value(键值对)与之对应.一个Key对应一个Value.在erlang中,启动进程节点之后,进程字典的put.get的值是对缓存的处理,而对数据库的操作,相当于是对硬盘的一个操作,可以理解成是一个数据的备份. 举个简单的例子:在游戏中都有好友操作,启动服务之后,玩家点击添加好友操作,进程的节点已经开启,先从内存中获取玩家的进程字典的Value的值,这里