Current section

Files

Jump to
verk lib verk stats.ex
Raw

lib/verk/stats.ex

defmodule Verk.Stats do
@moduledoc """
Basic stats for Verk
"""
@doc """
Total amount of processed and failed jobs
"""
@spec total(GenServer.server) :: Map.t
def total(redis \\ Verk.Redis) do
[processed, failed] = Redix.command!(redis, ~w(MGET stat:processed stat:failed))
%{processed: to_int(processed), failed: to_int(failed)}
end
@doc """
Total amount of processed and failed jobs for a single queue
"""
@spec queue_total(String.t, GenServer.server) :: Map.t
def queue_total(queue, redis \\ Verk.Redis) do
[processed, failed] = Redix.command!(redis, ~w(MGET stat:processed:#{queue} stat:failed:#{queue}))
%{total_processed: to_int(processed), total_failed: to_int(failed)}
end
defp to_int(nil), do: 0
defp to_int(string), do: String.to_integer(string)
end