我正在运行一个简单的牛仔服务器。这是我的应用程序文件:
defmodule MyApp.Application do
@moduledoc "Application file"
use Application
def start(_type, _args) do
children = [
Plug.Cowboy.child_spec(
scheme: :http,
plug: MyApp.Web.Endpoint,
options: [port: 8000]
)
]
opts = [strategy: :one_for_one, name: MyApp.Supervisor]
IO.puts("Starting...")
Supervisor.start_link(children, opts) |> IO.inspect
end
end
这是我的终点:
defmodule MyApp.Web.Endpoint do
@moduledoc """
This is the module responsible for processing incoming requests
"""
use Plug.Router
import Plug.Conn, only: [send_resp: 3]
plug(Plug.Logger)
plug(:match)
plug(:dispatch)
get "/ping" do
send_resp(conn, 200, "pong")
end
end
运行mix run
后,我看到启动日志(“正在启动...”),但是我的应用程序立即退出,而不是监听连接。如何让它无限期聆听?
答案 0 :(得分:1)
来自mix run docs:
mix run
可用于启动当前应用程序依赖项, 应用程序本身,并可以选择在其上下文中运行一些代码。对于 长时间运行的系统,通常是通过--no-halt
完成的 选项:mix run --no-halt