Packages

Robust job queue compatible with Sidekiq Enterprise, powered by GenStage and Redis

Current section

Files

Jump to
kiq lib kiq running_job.ex
Raw

lib/kiq/running_job.ex

defmodule Kiq.RunningJob do
@moduledoc false
alias Kiq.{Job, Timestamp}
@type t :: %__MODULE__{key: binary(), encoded: binary()}
defstruct [:key, :encoded]
@spec new(job :: Job.t()) :: t()
def new(%Job{pid: pid, queue: queue} = job) do
details = %{queue: queue, payload: Job.to_map(job), run_at: Timestamp.unix_now()}
%__MODULE__{key: format_key(pid), encoded: Jason.encode!(details)}
end
defp format_key(pid) when is_pid(pid) or is_reference(pid) do
to_string(:io_lib.format("~p", [pid]))
end
end