问题标签 [erlang-otp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4929 浏览

erlang - 如何找出 Erlang 进程 (PID) 在哪个节点上运行?

鉴于我可以将 PID 从一个进程发送到另一个进程,甚至跨节点,如果我从不同进程中的进程(可能在不同节点上)接收到 Pid,我如何找出有问题的 PID 在哪个节点中运行/上?

erlang:process_info(Pid)里面似乎没有这些信息。

谢谢。

0 投票
2 回答
216 浏览

xml - 如何在erlang中修改现有xml文档中的大量数据

假设您有一个大约 1 兆字节大小的现有 XML 文档。所以总的来说它很小,但仍然不是微不足道的小。现在我大部分时间都想处理这个文档,插入小列表之类的数据,或者在这个文档的几个节点上添加文本。假设大约有 25 个修改。在 erlang 中执行此操作的最佳方法是什么。

谢谢。

-丹尼斯

0 投票
4 回答
3892 浏览

erlang - Erlang:用于进程的简单 pubsub——我的方法可以吗?

免责声明:我对 Erlang 和 OTP 很陌生。

我想要一个 Erlang/OTP 中的简单 pubsub,其中进程可以在某个“集线器”订阅并接收发送到该集线器的消息副本。

我知道gen_event,但它在一个事件管理器进程中处理事件,而我希望每个订阅者都是一个独立的、自治的进程。此外,我无法接受 grokgen_event的处理程序监督。不幸的是,谷歌搜索结果充满了 XMPP (Ejabberd) 和 RabbitMQ 链接,所以我没有找到任何与我的想法相关的内容。

我的想法是这样的 pubsub 模型无缝地映射到监督树。所以我想扩展主管(gen_server引擎盖下的一个),以便能够向它的所有孩子发送演员信息。

我已经在我的快速而肮脏的自定义“调度程序”行为中破解了这个:

然而,虽然乍一看一切似乎都很好(孩子们收到消息并在失败时无缝重新启动),但我想知道这是否是个好主意。

请问有人可以批评(或批准)我的方法,和/或推荐一些替代方案吗?

0 投票
4 回答
1751 浏览

erlang - 构建商业系统:纯 Erlang 还是 Erlang/OTP?

我即将用 Erlang 构建一个系统(我的问题可以用多个 CPU 更好地解决),我已经浏览了:

  1. 学习一些 Erlang
  2. Erlang/OTP 在行动
  3. Erlang 编程(阿姆斯壮);
  4. Erlang 编程(Cesarini)。

Erlang/OTP in Action 一书 (2) 说:“……编写非 OTP Erlang 代码确实是一个高级主题,只有当你真的必须这样做时才应该这样做。所以也许从来没有做过非 OTP 方式是一种祝福,因为您会立即养成关于 OTP 的正确习惯......”

(2) 坚持商业系统应该仅使用 OTP 构建,而 (4) 温和地表明 OTP 不是唯一的方法。

此外,通过阅读 (4),我发现从 Erlang 的基础知识构建知识有助于理解 OTP 的工作原理(但不是相反)。

那么,问题来了:我应该选择 Erlang/OTP 来构建商业系统还是可以用纯 Erlang 来完成?

0 投票
1 回答
6027 浏览

architecture - 您如何设计基于 Erlang/OTP 的分布式容错多核系统的架构?

我想构建一个基于 Erlang/OTP 的系统来解决“令人尴尬的并行”问题。

我已经阅读/浏览:

  • 向你学习一些 Erlang;
  • Erlang 编程(阿姆斯壮);
  • Erlang 编程(Cesarini);
  • Erlang/OTP 在行动。

我掌握了流程、消息传递、主管、gen_servers、日志记录等的要点。

我确实了解某些架构选择取决于所关注的应用程序,但我仍然想知道一些 ERlang/OTP 系统设计的一般原则。

我是否应该从几个带有主管的 gen_servers 开始并在此基础上逐步构建?

我应该有多少个主管?我如何决定系统的哪些部分应该基于流程?我应该如何避免瓶颈?

我应该稍后添加日志记录吗?

Erlang/OTP 分布式容错多处理器系统架构的一般方法是什么?

0 投票
1 回答
765 浏览

erlang - 可以作为 OTP 应用程序运行的 Erlang Web 框架

我正在开发一个小型 Erlang/OTP 系统,我需要一个 Web 前端。

由于我不想自己编写所有用户、注册和数据库功能,因此我正在寻找一个框架。

我想将它整合到系统中并由主管监督,以使系统的所有组件都具有容错性。

是否存在可以用作 Erlang/OTP 应用程序的受监督部分的基于 Erlang 的 Web 框架?

0 投票
1 回答
658 浏览

java - 如何使用 com.ericsson.otp.erlang 确定 erlang 术语是否为空

在我们的 Java 程序中,我们收到一个 Erlang 元组并将其提取到OtpErlangTuple. 元组的元素之一应该是字符串,但可以为空。当它为空时,它的值是[]- Erlang 表示一个空列表的方式。

我的问题是如何检查元素是否为空以便将其转换为OtpErlangString?

就像现在一样(OtpErlangString)messageData.elementAt(2),引发了以下异常:

class java.lang.ClassCastException , 'com.ericsson.otp.erlang.OtpErlangList cannot be cast to com.ericsson.otp.erla ng.OtpErlangString'

谢谢,

马丁

0 投票
2 回答
1009 浏览

erlang - Erlang主管:如何检查是否所有工人都已回复

我有一个有 N 个工作进程的主管。像往常一样,主管可以向工作进程发送消息,并且有一个handle_cast从工作人员向主管发送回复的消息。

如何检查所有 N 名员工是否都已回复主管?是否可以通过任何类型的事件处理来实现这一点 - 即告诉主管“好的,每个人都已回复”,而不是让主管在某种 ETS 中每秒检查“所有 N 个进程都已回复”状态子注册表?

0 投票
1 回答
264 浏览

erlang - 是否可以在没有超级步骤的情况下在 Erlang 中实现 Pregel?

假设我们用 Erlang实现Pregel 。为什么我们实际上需要超级步骤?只将消息从一个主管发送到代表节点的进程不是更好吗?他们可以将计算功能应用到自己身上,互相发送消息,然后向主管发送“完成”消息。

Pregel的并发Erlang实现中超级步骤的全部目的是什么?

0 投票
2 回答
306 浏览

erlang - 我应该为此使用哪些 OTP 行为?

我有一个接受 TCP 连接的服务器(使用 gen_tcp 的 gen_server),并且对于每个连接,它都会生成一个主管。该主管(由另一个更永久的主管监督)然后产生两个进程:一个特定于协议的处理程序和一个与数据库对话的客户端上下文。

协议处理程序从套接字获取 TCP 消息并将它们转换为客户端上下文的消息。客户端上下文获取这些消息并与数据库对话并返回消息,协议处理程序将其转换为它通过 TCP 使用的任何协议(telnet、ssh、websockets、HTTP ...)并将它们发送回客户端。

我想知道的是哪些 OTP 行为适合协议处理程序和客户端上下文进程。我可以滥用 gen_server,但它是每个进程对 1 个连接。gen_fsm 看起来它可以用于协议处理程序,因为它经历了几个状态,但它非常不适合客户端上下文。我正在考虑 gen_event 用于客户端上下文,但我被引导相信它更多地用于事件聚合器,并且这只处理来自单一来源的事件。

随意告诉我,我的做法完全错误,这是我第一次尝试在这个复杂的任何地方制作 OTP 应用程序。