using HttpServer
http = HttpHandler() do request::Request, response::Response
show(request)
Response("Hello there")
end
http.events["error"] = (client, error) -> println(error)
http.events["listen"] = (port) -> println("Listening on $port")
server = Server(http)
t = @async run(server, 3000)
这会异步启动一个简单的小型Web服务器。问题是我不知道如何阻止它。我一直在阅读Julia文档,并尝试找到一些将从队列中删除此任务的函数(kill
,interrupt
等),但似乎没有任何效果。
我该怎样杀死这个任务?
答案 0 :(得分:9)
我没有看到专门结束任务的官方方法,但我认为通用解决方案是the addition of throwto,,它允许您立即安排具有待处理异常的任务。
...
t = @async run(server, 3000)
...
ex = InterruptException()
Base.throwto(t, ex)
close(http.sock) # ideally HttpServer would catch exception to cleanup