首页 > 解决方案 > 后台 Julia TCP 服务器

问题描述

我的用例

创建一个 Julia 后台进程,我可以从另一台服务器调用它。当我向它传递一些参数时,它会做一些事情,发送响应,然后等待下一个请求。

我试过的

如果有更“朱莉娅”的做法,请告诉我,但我认为这对于像文档示例中的 TCP 服务器来说是一个很好的用例:

using Sockets

@async begin
       server = listen(2001)
       while true
           sock = accept(server)
           @async while isopen(sock)
               write(sock,readline(sock))
           end
       end
   end

...在 REPL 中运行良好!但我希望它永久在后台运行,所以我不需要打开 REPL。

当我将上述内容放入 app.jl 并运行julia app.jl时,它显然会运行然后立即退出。即使关闭我的终端,保持它运行的最佳方法是什么?

编辑

标签: unixtcpjulia

解决方案


我在评论中放了几个选项。现在最简单的方法是删除代码@async中前面的begin语句并运行(我假设是 Linux):

nohup julia app.jl &

当然,您可以添加1>2>重定向标准输出和标准错误,将其作为cron工作等。

JuliaWebAPI但是, +ZeroMQ对于生产系统将更加健壮,并且Distributed对于计算解决方案将更加方便。


推荐阅读