问题标签 [gen-event]
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.
elixir - Elixir GenEvent 的 handle_call 和 handle_event 有什么区别?
请在下面查看我的答案以了解我发现的差异,并让我知道它们是否错误或是否有更多差异。谢谢你。
elixir - 在 Elixir 中启动同一事件处理程序的多个实例
我在 elixir 中有一个简单的事件处理程序,使用GenEvent
:
我可以以通常的方式启动一个处理程序和一个管理器:
但是,我想启动一个监督树,其中有 N 个处理程序,每个处理程序都有不同的 id,使用相同的管理器。
我试过:
,没有运气!相反,我收到以下错误:
我是 Elixir 的新手,所以在文档方面有点挣扎。如果有人能告诉我怎么做,我将不胜感激!谢谢。
unit-testing - Elixir:测试 GenEvent 的错误报告
我有一个GenEvent
像这样添加为处理程序的:error_logger.add_report_handler(HoloNet.ErrorLogger)
以便捕获错误/异常并将其转发到异常监视服务。
我在事件行为中有以下代码
使用应用程序配置模拟发出 http 请求的客户端。
它在生产中可以正常工作,但我希望有一些测试覆盖率。
我正在考虑通过使 GenServer 崩溃或导致一些异常来测试它,然后查看是否调用了 notify。这感觉不是很有功能/Elixir,但我想测试在导致错误时是否会捕获错误。
erlang - code_change() 函数在 gen_server 模块中如何工作?
我是新手erlang
,所以我有一个问题gen_server
。我仍然不清楚code_change()
功能是如何工作的?
你能给我解释一下吗?
谢谢和最好的问候。
erlang - 在初始化 Erlang 主管进程时添加 gen_event 处理程序
我正在学习 Erlang,并且正在设法找到答案并相对有效地解决大多数问题的解决方案,但是花了很多时间来解决这个问题:
将处理程序添加到主管进程正在启动的 gen_event 模块的正确方法是什么?到目前为止,在我的探索中,我已经能够设置进程、gen_servers、主管(启动 gen_servers)和 gen_event 模块,但是我尝试向 gen_event 实际添加处理程序的所有操作都使我的主管进程崩溃——有时甚至我的壳!!
主管模块:
…以及来自 gen_event 模块 osc_event_server 的一些点点滴滴(希望是相关的!)
尽管我对 gen_event 行为的理解很差,但我对运行包含这些片段的代码的结果并不感到惊讶:
- 它启动而不会崩溃
- 它启动 gen_event 并为其生成一个可引用的 Pid,但从未命中
init
“osc_event_server”块 - gen_event 没有附加实际的事件处理程序。“which_handlers”和发送消息的尝试都证实了这一点。
我想合并的两件事:
- 将特定的事件处理程序(例如,“send_osc”)附加到我的 gen_event 进程......希望来自主管代码
- 将初始化参数传递给 osc_event_server 模块;我希望至少能够为 UDP 服务器指定端口(而不是硬连线“8980”),并提供我希望我的进程与之通信的远程 UDP 服务器的 IP+端口。
非常感谢。随意批评你看到的任何东西……例如,我的整个方法 :) 就我在这一点上理解的 Erlang 而言,我敢肯定,与我误解的 Erlang 的数量相比,它什么都不是。