rest - 避免为 REST 服务停止 Julia

标签 rest julia

我尝试使用 Julia 和 Genie 库构建一个小的 REST 服务。最后一个命令是 up(8888)

当我从 Julia REPL 启动时一切正常。

当我从 >julia myrestapi.jl 之类的命令行启动它时,程序会立即启动和停止,即 up() 不会进入无限循环。

我该怎么做才能让服务器保持运行?

最佳答案

当 Genie 服务器以异步模式启动时,它会运行主任务,并允许脚本处理继续进行。如果脚本结束,整个进程及其派生的任务将停止。此行为不利于正在运行的 Web 服务。为了防止这种情况发生,有两个建议:

  1. 通过同步运行,不要让服务器脱离主任务运行。在代码中:
Genie.config.run_as_server = true
...
Genie.Server.up()
  1. 确保主进程在服务器任务结束之前不会结束。在代码中:
Base.JLOptions().isinteractive == 0 && wait()

isinteractive 条件,仅当它作为脚本运行时才运行 wait(),正如在交互式 session 中存在 REPL 时的通常期望,是发出更多命令,REPL 使服务器任务在后台运行。

关于rest - 避免为 REST 服务停止 Julia,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74274816/

相关文章:

string - 创建全精度数组的字符串

c - Julia - 具有非基本类型的 C 接口(interface)

julia - 在 julia 中使用 vcat 时避免内存分配

magento - 在多商店 View 中使用 Magento rest API

java - 具有多个自定义对象的 @Restcontroller 方法

java - 通过 REST 服务发送 ByteArrayOutputStream 时出现 NoMessageBodyWriterFoundFailure

PHP curl 与 Microsoft Dynamics CRM 2011 对话

java - 我是否需要一个包含经常使用站点的 REST API 的 Java 应用程序的数据库?

expression - 从 Julia 中的列表表达式创建表达式列表

Julia:如何为新数组类型的 repl 编写打印方法?