Current section
Files
Jump to
Current section
Files
web/controllers/queues_controller.ex
defmodule VerkWeb.QueuesController do
require Verk.QueueStats
use VerkWeb.Web, :controller
def index(conn, params) do
render(conn, "index.html",
queue_stats: Verk.QueueStats.all(params["search"] || ""),
search: params["search"]
)
end
def show(conn, %{"queue" => queue}) do
params = conn.params
paginator =
VerkWeb.RangePaginator.new(Verk.Queue.count!(queue), params["page"], params["per_page"])
render(conn, "show.html",
queue: queue,
enqueued_jobs: Verk.Queue.range!(queue, paginator.from, paginator.to),
has_next: paginator.has_next,
has_prev: paginator.has_prev,
page: paginator.page,
per_page: paginator.per_page
)
end
def busy(conn, %{"queue" => queue}) do
running_jobs = Verk.WorkersManager.running_jobs(queue)
render(conn, "busy.html", queue: queue, running_jobs: running_jobs)
end
def pause(conn, %{"queue" => queue}) do
queue |> String.to_atom() |> Verk.pause_queue()
redirect(conn, to: queues_path(conn, :index))
end
def resume(conn, %{"queue" => queue}) do
queue |> String.to_atom() |> Verk.resume_queue()
redirect(conn, to: queues_path(conn, :index))
end
end