Elixir - 在监督下启动 Java JInterface OTP 节点

Posted

技术标签:

【中文标题】Elixir - 在监督下启动 Java JInterface OTP 节点【英文标题】:Elixir - Starting a Java JInterface OTP node under supervision 【发布时间】:2020-06-01 21:31:34 【问题描述】:

我有一个 elixir 伞形项目,其中一个应用程序向一个 Java 应用程序发送请求,我已将其公开为类似于使用 JInterface 的 OTP 进程。

它完美运行,因为 Erlang 附带的 JInterface 库使它变得简单。

我的问题是我需要能够在我的伞形应用程序中停止和启动我的 JInterface 进程,但我找不到任何说明如何执行此操作的文档。我目前必须手动执行 jar。

请有人解释/指向我如何在监督下从 elixir 中执行我的 jar 的文档?

我已经尝试了很长时间来了解如何执行此操作,但我只能找到有关如何使用 JInterface 以及如何与其交互的文档,而不是如何在监督下以编程方式启动它的文档。 提前致谢。

【问题讨论】:

【参考方案1】:

很久以前我不得不这样做,结果是lucene_server。 您可以找到节点监控代码here。类似于……

true = link(process()),
true = erlang:monitor_node(State#state.java_node, true),

您可能会发现有用的另一件事(从 Java 方面)是使用 jinerface_stdlib

【讨论】:

谢谢!我会试试这个。

以上是关于Elixir - 在监督下启动 Java JInterface OTP 节点的主要内容,如果未能解决你的问题,请参考以下文章

Erlang - Elixir:啥是监督树?

如何从受监督的工作进程中触发 Elixir 主管树终止

Elixir - 受监督的进程似乎会阻止程序执行

[Elixir002]节点启动后自动连接其它节点

Elixir 中的动态主管规范

Elixir Redix 基于名称的池示例 - 主管签名不存在