【问题标题】:How to implement temporary workers in Erlang/OTP如何在 Erlang/OTP 中实现临时工
【发布时间】:2012-11-19 16:53:16
【问题描述】:

什么是实现流程的最常规方式,只应完成其工作并退出?

在我的情况下,这些工人由 simple_one_for_one 主管监督。我四处寻找,但没有找到比 spawn_link 更好的东西:

work(Args) ->
{ok, spawn_link(fun() ->
    ... do_the_necessary_work ...
end)}.

不过,这种方式似乎不是好的 OTP 设计。

有什么想法吗?

【问题讨论】:

  • 是否有 erlang 语法高亮显示?

标签: erlang erlang-otp worker


【解决方案1】:

这实际上是一种不错的方式,只需确保您使用的是 proc_lib:spawn_link(...) 而不是 erlang:spawn_link(...)(用于存储祖先以进行监督树遍历,以及更详细的错误日志)。

当然,您可能希望将所有工作人员的重启策略设置为temporarytransient,这取决于您在工作人员发生故障时要做什么(重新启动工作人员并尝试执行再次作业或在任何失败的情况下丢弃作业)。

【讨论】:

    猜你喜欢
    • 2013-11-01
    • 2011-05-05
    • 2016-08-02
    • 1970-01-01
    • 2011-05-18
    • 2017-05-12
    • 2010-11-24
    • 2010-11-13
    • 1970-01-01
    相关资源
    最近更新 更多