【问题标题】:Get message from other modules从其他模块获取消息
【发布时间】:2010-12-08 14:30:29
【问题描述】:

我正在开发一个将文本存储在文件中的记录器模块。在这个记录器文件中,我试图从同一项目中的其他模块接收消息。我有一个控制器,它有一些写入外壳的输出。我不希望将此输出写入 shell,而是希望此输出能够将其发送到我的记录器模块,然后该模块应将输出写入文件。

问题是我应该如何编写代码来接收这些消息?

谢谢

【问题讨论】:

  • 这是一个 OTP 应用程序吗?如果是这样,D.Nibons 的答案就是要走的路。

标签: erlang


【解决方案1】:

基本上没有任何进一步的详细信息,我认为您想创建一个event handler (gen_event behaviour),它非常适合日志记录、事件处理(因此得名:) 等情况。

【讨论】:

  • 如果环境压力不是很大(记录器不会被锤击),那么这可能是一种方法,就足够了。如果这是一个压力很大的环境,它不会扩展,所以考虑使用 ETS 表作为缓冲区并定期将内容转储到文件中。但是,如果您崩溃,您可能会丢失一些日志消息,所以如果这是不可接受的,那么您可以通过优先级一个(直接写入)和一个作为缓冲区来解决这个问题。
【解决方案2】:

与您编写代码以接收任何其他消息的方式相同;带有receive 块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-19
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    • 2019-07-16
    • 2022-06-12
    • 2021-12-25
    • 1970-01-01
    相关资源
    最近更新 更多