问题标签 [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 投票
2 回答
505 浏览

erlang - 在超时前结束进程

似乎 erlang 进程将保持活动状态,直到 5 秒默认超时,即使它已经完成了它的工作。

我有 gen_server 调用向窗口 CLI 发出命令,该命令可以在不到 1 秒的时间内完成,但在我看到操作结果之前进程等待 5 秒。这是怎么回事?是否与超时有关,或者可能是其他原因。

编辑此调用在 5 秒内不执行任何操作(默认超时!)

0 投票
3 回答
848 浏览

erlang - 使用 gen_server 封装一个 mnesia 表?

我有一个用 Erlang 制作的服务器应用程序。在其中我有一个记忆表,用于存储有关照片的一些信息。本着“一切都是过程”的精神,我决定将该表包装在一个gen_server模块中,以便该 gen_server模块是唯一直接访问该表的模块。通过向该进程(具有注册名称)发送消息来完成向该表的查询和添加信息。这个想法是会有几个客户端进程从该表中查询信息。

这工作得很好,但该gen_server模块没有状态。它所需的一切都存储在 mnesia 表中。所以,我想知道 agen_server是否可能不是封装该表的最佳模型?

我是否应该不让它成为一个过程,而只是通过该模块中的函数封装表格?如果该模块中出现错误,这将导致调用进程崩溃,我认为这可能会更好,因为它只会影响单个客户端,而不是现在,当它会导致 gen_server进程崩溃时,让每个人都无法访问表(直到主管重新启动它)。

非常感谢任何输入。

0 投票
2 回答
1331 浏览

erlang - 如何使用 ssl 加密构建非阻塞 TCP 服务器

trapexit.org 上的非阻塞 TCP 服务器解释了如何基于 tcp_gen 构建服务器,但我想修改此示例并使其与 ssl 一起使用。现在我完全不知道如何更换

0 投票
6 回答
15946 浏览

list - Erlang 列表:index_of/2 函数?

我正在寻找一个 Erlang 库函数,它将返回列表中特定元素的索引。

因此,如果

将返回 1 等,就像java.util.List'indexOf()方法一样。

Erlang标准库中是否存在这种方法?我尝试查看列表模块,但没有运气。还是我自己写?

0 投票
5 回答
1410 浏览

erlang - Erlang gen_server vs 无状态模块

我最近完成了乔的书,非常喜欢它。从那时起,我开始使用 erlang 编写软实时应用程序,我不得不说我对 gen_server 的使用有点困惑。

我什么时候应该使用 gen_server 而不是简单的无状态模块?我将无状态模块定义如下: - 一个将其状态作为参数的模块(很像 ETS/DETS),而不是将其保留在内部(如 gen_server)

比如说发票管理器类型模块,它应该初始化并返回我随后传递给它的状态吗?SomeState = InvoiceManager:Init(), SomeState = InvoiceManager:AddInvoice(SomeState, AnInvoiceFoo)。

假设我需要发票管理器状态的多个实例(比如我的应用程序管理多个公司,每个公司都有自己的发票),如果他们每个人都有一个带有内部状态的 gen_server 来管理他们的发票,或者更适合简单地拥有无状态模块多于?

两者之间的界线在哪里?

(注意上面的发票管理例子就是这样,一个例子来说明我的问题)

0 投票
2 回答
383 浏览

erlang - erlang 中的事件管理器进程。命名进程还是 Pid?

我有事件管理器进程将事件分派给订阅者(例如 http_session_created、http_sesssion_destroyed)。如果使用Pid而不是命名进程,我必须将它放入函数中以使用事件管理器进行操作,但如果使用命名进程,代码会更清晰。

哪个变体是正确的?

谢谢!

0 投票
1 回答
320 浏览

erlang - 二郎otp下载

从http://code.google.com/p/otp-base/http://www.erlware.org/下载有什么不同?

0 投票
5 回答
8744 浏览

erlang - 在 Erlang 的 gen_server 中实现代码交换

我希望在 gen_server 上使用 Erlang 的热代码交换功能,这样我就不必重新启动它。我该怎么做?当我搜索时,我只能找到一篇提到我需要使用gen_server:code_change回调的文章。

但是,我真的找不到任何关于如何使用它的文档/示例。非常感谢任何帮助或资源链接!

0 投票
3 回答
957 浏览

erlang - 使用未注册的、动态创建的 gen_server 的示例?

使用 OTP 应用程序中命名的 gen_servers 的教程比比皆是。但是,我一直找不到动态生成未注册(未命名)服务器的好例子。有人可以指出一个好的,简单的例子吗?不是 ejabberd,例如,我试图理解的核心思想有很多令人困惑的地方。

谢谢。

0 投票
1 回答
687 浏览

erlang - 如果 gen_fsm 没有收到消息,则允许它超时

通常,如果我想要 Erlang 进程超时,我会使用以下构造:

OTP 服务器中是否有类似的机制,例如 gen_fsm?我将为我的应用程序的每个活动会话生成 gen_fsm,并且如果在收到消息后超过不活动的超时值,我希望它们退出。

如果需要,我可以编写自己的自定义流程,但如果可能,我更愿意使用 gen_fsm。