Packages
honeydew
1.5.0
1.5.0
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.0
1.2.8
1.2.7
1.2.6
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
1.0.0-rc7
1.0.0-rc6
1.0.0-rc5
1.0.0-rc4
1.0.0-rc3
1.0.0-rc2
1.0.0-rc1
0.0.11
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
Pluggable local/clusterable job queue focused on safety.
Current section
Files
Jump to
Current section
Files
lib/honeydew/success_mode/log.ex
defmodule Honeydew.SuccessMode.Log do
@moduledoc """
Instructs Honeydew to log the job when it succeeds.
This logging might be too verbose for most needs, it's mostly an example of how to write a SuccessMode.
## Example
```elixir
Honeydew.start_queue(:my_queue, success_mode: #{inspect __MODULE__})
```
"""
require Logger
alias Honeydew.Job
@behaviour Honeydew.SuccessMode
@impl true
def validate_args!([]), do: :ok
def validate_args!(args), do: raise ArgumentError, "You provided arguments (#{inspect args}) to the Log success mode, it only accepts an empty list"
@impl true
def handle_success(%Job{enqueued_at: enqueued_at, started_at: started_at, completed_at: completed_at, result: {:ok, result}} = job, []) do
Logger.info fn ->
queue_time = started_at - enqueued_at
run_time = completed_at - started_at
"Job #{inspect job} completed, sat in queue for #{queue_time}ms, took #{run_time}ms to complete, and returned #{inspect result}."
end
end
end