Packages

Simple and reliable background job processing library for Elixir. Has persistence, retries, delayed jobs, concurrency limiting, error handling and is heroku friendly.

Current section

Files

Jump to
toniq lib toniq test_worker.ex
Raw

lib/toniq/test_worker.ex

# Used for manual testing of toniq
# Usage: Toniq.enqueue(Toniq.TestWorker)
defmodule Toniq.TestWorker do
use Toniq.Worker, max_concurrency: 2
# Usage: Toniq.enqueue(Toniq.TestWorker, :fail)
#
# To make this fail right away:
# Application.put_env(:toniq, :retry_strategy, Toniq.RetryWithoutDelayStrategy)
def perform(:fail) do
IO.inspect("Running fail-every-time job")
raise "failing every time"
end
def perform(:fail_once) do
unless Application.get_env(:toniq, :fail_once) do
Application.put_env(:toniq, :fail_once, true)
raise "failing once"
end
IO.inspect("fail once job succeeded")
end
def perform([]) do
IO.puts("Job started in #{Toniq.Keepalive.identifier()}")
:timer.sleep(3000)
IO.puts("Job finished in #{Toniq.Keepalive.identifier()}")
end
end