Current section

Files

Jump to
verk lib verk job.ex
Raw

lib/verk/job.ex

defmodule Verk.Job do
@moduledoc """
The Job struct
"""
@default_max_retry_count Application.get_env(:verk, :max_retry_count, 25)
@keys [error_message: nil, failed_at: nil, retry_count: 0, queue: nil, class: nil, args: [],
jid: nil, finished_at: nil, enqueued_at: nil, retried_at: nil, error_backtrace: nil,
max_retry_count: @default_max_retry_count]
@derive {Poison.Encoder, only: Keyword.keys(@keys)}
defstruct [:original_json | @keys]
@doc """
Decode the JSON payload storing the original json as part of the struct.
"""
@spec decode!(binary) :: %__MODULE__{}
def decode!(payload) do
job = Poison.decode!(payload, as: %__MODULE__{})
%Verk.Job{job | original_json: payload}
end
def default_max_retry_count do
@default_max_retry_count
end
end