gpt4 book ai didi

task - 如何在Julia中杀死任务/协程?

转载 作者:行者123 更新时间:2023-12-03 20:52:32 27 4
gpt4 key购买 nike

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文档,试图找到一些可以从队列中删除此任务的函数( killinterrupt等),但似乎没有任何效果。

我如何杀死这个任务?

最佳答案

我没有找到一种专门的方法来结束任务,但是我认为一般的解决方案是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

关于task - 如何在Julia中杀死任务/协程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27209663/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com