Packages
exq
0.8.2
0.23.0
0.22.0
0.21.0
0.20.0
0.19.0
0.18.0
0.17.0
0.16.2
0.16.1
0.16.0
0.15.0
0.14.0
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.2
0.12.1
0.12.0
0.11.0
0.10.1
0.10.0
0.9.1
0.9.0
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.3
0.7.2
0.7.1
0.7.0
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.0
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
0.0.2
Exq is a job processing library compatible with Resque / Sidekiq for the Elixir language.
Current section
Files
Jump to
Current section
Files
lib/exq/serializers/json_serializer.ex
defmodule Exq.Serializers.JsonSerializer do
@behaviour Exq.Serializers.Behaviour
def decode(json) do
Poison.decode(json)
end
def encode(e) do
Poison.encode(e)
end
def decode!(json) do
Poison.decode!(json)
end
def encode!(e) do
Poison.encode!(e)
end
def decode_job(serialized) do
deserialized = decode!(serialized)
%Exq.Support.Job{
args: Dict.get(deserialized, "args"),
class: Dict.get(deserialized, "class"),
enqueued_at: Dict.get(deserialized, "enqueued_at"),
error_message: Dict.get(deserialized, "error_message"),
error_class: Dict.get(deserialized, "error_class"),
failed_at: Dict.get(deserialized, "failed_at"),
finished_at: Dict.get(deserialized, "finished_at"),
jid: Dict.get(deserialized, "jid"),
processor: Dict.get(deserialized, "processor"),
queue: Dict.get(deserialized, "queue"),
retry: Dict.get(deserialized, "retry"),
retry_count: Dict.get(deserialized, "retry_count")}
end
def encode_job(job) do
deserialized = %{
args: job.args,
class: job.class,
enqueued_at: job.enqueued_at,
error_message: job.error_message,
error_class: job.error_class,
failed_at: job.failed_at,
finished_at: job.finished_at,
jid: job.jid,
processor: job.processor,
queue: job.queue,
retry: job.retry,
retry_count: job.retry_count
}
encode!(deserialized)
end
def decode_process(serialized) do
deserialized = decode!(serialized)
%Exq.Support.Process{
pid: Dict.get(deserialized, "pid"),
host: Dict.get(deserialized, "host"),
job: Dict.get(deserialized, "job"),
started_at: Dict.get(deserialized, "started_at")
}
end
def encode_process(process) do
formatted_pid = to_string(:io_lib.format("~p", [process.pid]))
deserialized = Enum.into([
pid: formatted_pid,
host: process.host,
job: process.job,
started_at: process.started_at], HashDict.new)
encode!(deserialized)
end
end