我的用例
创建一个Julia后台进程,可以从其他服务器调用该进程。当我传递一些参数时,它会填充,发送响应,然后等待下一个请求。
我尝试过的事情
如果还有更多的'Julia'方式,请告诉我,但是我认为这将是TCP服务器的一个好用例,就像docs'示例中一样:
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
时,它显然会运行然后立即退出。即使关闭终端后,保持其运行的最佳方法是什么?
编辑
答案 0 :(得分:1)
我在评论中添加了几个选项。
现在,最简单的方法是删除代码中// ClientSideClassroom class constructor
this.students = this.doc.data().students.map(studentRef => {
return // find the student in the studentsSnapshot with studentRef
})
语句前面的@async
并运行(我假设是Linux):
begin
当然,您可以添加nohup julia app.jl &
和1>
来重定向标准输出和标准错误,将其作为2>
作业等。
cron
+ JuliaWebAPI
对于生产系统将更加健壮,而ZeroMQ
对于计算解决方案将更加方便。
答案 1 :(得分:0)
实际上,对于将来的任何人,一个更好的答案(取决于您的用例)可能是将其添加到文件的底部:
Error response from daemon: legacy plugin: Plugin.Activate: {"message":"page not found"}
这将导致它不会自动退出。无需外部库或框架。