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)
Это асинхронно запускает простой небольшой веб-сервер. Проблема в том, что я понятия не имею, как остановить ее. Я просматриваю документацию Julia и пытаюсь найти какую-то функцию, которая удалит эту задачу из очереди (kill
, interrupt
и т. Д.), Но ничего не работает.Как убить задачу/сопрограмму в Джулии?
Как я могу убить эту задачу?
Простое решение вашей проблемы будет переопределять [Run] (https://github.com/JuliaWeb/HttpServer.jl/blob/master/src/HttpServer.jl#L204) с аннулированию цикла , Джулия использует libuv, поэтому 'accept' действительно [uv_accept] (http://docs.libuv.org/en/v1.x/stream.html#c.uv_accept). См. [Uv_connection_cb] (http://docs.libuv.org/en/v1.x/stream.html#c.uv_connection_cb). – Phillip
Спасибо, но я действительно искал немного более общего, чем это. HTTP-сервер - это всего лишь пример асинхронной задачи. – Nick