假设您有一个 OTP 进程,您希望同步等待其完成(其中“完成”可能是正常退出或崩溃、停止等)。 进一步假设出于业务原因,您不能使用Task.async/1或相关的Task实用程序生成此进程——它必须是一个不依赖于Task.await/2的“正常”进程。 有没有比简单地间歇性地轮询Process. ...
假设您有一个 OTP 进程,您希望同步等待其完成(其中“完成”可能是正常退出或崩溃、停止等)。 进一步假设出于业务原因,您不能使用Task.async/1或相关的Task实用程序生成此进程——它必须是一个不依赖于Task.await/2的“正常”进程。 有没有比简单地间歇性地轮询Process. ...
在我的 opt 应用程序中,我有一些在应用程序启动时运行的东西: 但是,我发现每当我在新服务器上部署应用程序时,它都会无法启动,因为尚未创建数据库。 即使通过控制台启动应用程序也无法解决问题,因为它仍然会因同样的原因崩溃。 如何解决? 我应该引入一个布尔环境。 变量“disable_db_ ...
我一直在阅读本教程的Rage Against The Finite State 机器一章,它使用了 gen_fsm,它已被弃用,取而代之的是 gen_statem。 运行测试时,我总是卡住,因为其中一个客户端正在协商 state并收到一个accept_negotiate 事件。 (也许还有其他错 ...
我只是从 otp 和 rebar3 开始。 以下是安装的版本: 二郎/OTP 23 Erlang/OTP 23 Erts 11.2 上的钢筋 3.15.1 但是,当我尝试从 rebar3 的基本用法页面添加依赖cowboy时,编译失败并出现以下错误: 为方便起见,下面是使用命令rebar3 rep ...
所以我试图启动一个 erlang 服务器,它将从我的 python 客户端回显。 我可以看到连接已经建立,但是回声实际上并没有发生。 谁能指出我正确的解决方案? 我使用 python3 作为我的客户端驱动程序。 这是我的 erlang 服务器:我从 echo:accept(6000) 开始。 这是我 ...
我一直在努力让我的消息在我的 NodeJS 服务器和我的 erlang gen_tcp 服务器之间正确构建。 在我不得不发送大数据消息并需要切换到消息大小框架之前,我一直在成功使用 {packet,line}。 我将 gen_tcp 设置为{packet,2} 我使用的库来自: https://gi ...
Erlang/OTP 的发布时间表是什么? 每年发布多少个主要版本,有可以链接的时间表吗? 哪些版本具有长期支持 (LTS)? ...
我有一个运行R15B03-1的分布式 Erlang 节点集群。 我开发了新代码,我想将其发布到新节点上并将它们放在当前集群中。 如何以运行 R15B03-1 和 OTP 23.1 的节点之间的分发协议兼容的方式启动运行 OTP 23.1 版本的新节点? ...
正如问题的标题所说: 为什么在 GenServer 中启动 Supervisor 会导致进程重启行为出现问题? 我在这里找到了一个讨论,其中说明了以下内容: 具体来说: “监督树提供的保证较少,因为进程可能会退出,而监督者不会终止其子进程。” “如果主管子项被命名 ...
我有以下循环: 我如何在 erlang 中实现这些代码? 我理解简单的乒乓,但我想并行创建此代码,以平衡负载。 我对循环实现部分有些困惑。 ...
为什么我的输出没有反映在 Lst1 中? 所以,我的 Lst1 正在打印 [],而如果我提供输入 1,2,3,我希望它打印,假设,[1,2,3]。 ...
我有以下伪代码: 我想使用erlang并行化这段代码。 如何使用 Erlang 实现相同的功能? 我是 Erlang 的新手... 编辑: 我知道以下代码同时运行对say/2的调用: 但是,这里我们对函数进行了硬编码。 因此,假设我要打电话say 1000次,我需要写spawn(pmap ...
我有我的 GenServer 的 init 功能。 主管正在照顾它,应该在退出时重新启动它。 当我使用sudo service rabbitmq-server restart重新启动 RabbitMQ 时,未建立新连接。 在调试栏中,我看到以下内容: 当我单击连接 pid <0.417 ...
我有聚合事件的 genserver: 在init我创建了 ets 表。 在 ets 表的info清理内存中将cast和刷新数据中的值添加到外部调用中(我认为)。 问题: 这个实现容易内存泄漏吗? 旧的 ets 表垃圾收集了吗? 旁白问题:这个实现看起来完全正常吗? ...
我是一些 OTP 概念的新手。 我有 GenServer,它将向 RabbitMQ 发布事件。 此GenServer具有状态: amqp Chanel哪个是发起一次初始化期间(),并且是持续之间cast所调用。 当我使用Myapp.Events.AmqpTransport.emit(%{"hop ...
我在我的应用程序中启动了多个(genserver)进程,虽然主管、动态主管,有时只是一个直接的 start_link。 当我使用iex -S mix启动应用程序时,其中一些可能会崩溃而不让我知道。 如果我自己没有发现,如何确保我收到来自任何进程的任何崩溃的所有通知? 在跟踪所有事件的同时,“让进程崩 ...
我需要将 UDP 服务器绑定到特定的 IP 地址。 现在我正在创建一个像这样的 UDP 服务器 其中 PARAM 是 UDP 服务器端口。 我不知道如何将它绑定到某个 IP。 有人可以帮我吗? ...
目标:能够运行凤凰,在 ec2 实例中混合发布(本机: https : //hub.docker.com/_/amazonlinux/ ) 问题:运行我的版本会产生以下错误: 但我在每个场景中都安装了openssl ( OpenSSL 1.0.2k-fips 26 Jan 2017 )。 设 ...
在gen_server实现的所有示例中,我看到?SERVER被分配给?MODULE 。 往下看: 我的想法是运行许多具有不同名称但在一个模块中实现的服务器进程。 但是,当我在实验中尝试使用与模块名称不同的名称运行服务器时,我总是遇到错误。 请有人向我解释这种微妙之处。 ...
所以我想做的是: 每当一个模块调用?DEBUG() OR?INFO() OR?WARNING() ETC (DEBUG, INFO, WARNING 是分别定义为 APPNAME:debug/APPNAME:info/APPNAME:warning ETC 的宏) 并且 APPNAME 也是另一个宏 ...