Current section
39 Versions
Jump to
Current section
39 Versions
Compare versions
3
files changed
+10
additions
-10
deletions
| @@ -60,4 +60,4 @@ | |
| 60 60 | {<<"optional">>,false}, |
| 61 61 | {<<"repository">>,<<"hexpm">>}, |
| 62 62 | {<<"requirement">>,<<"~> 3.0">>}]]}. |
| 63 | - {<<"version">>,<<"0.12.3">>}. |
| 63 | + {<<"version">>,<<"0.12.4">>}. |
| @@ -46,7 +46,7 @@ defmodule Conduit.Plug.Retry do | |
| 46 46 | end |
| 47 47 | rescue |
| 48 48 | error -> |
| 49 | - retry(message, next, retries, error, opts) |
| 49 | + retry(message, next, retries, error, System.stacktrace(), opts) |
| 50 50 | end |
| 51 51 | |
| 52 52 | defp retry(message, _, retries, :nack, %{attempts: attempts}) |
| @@ -54,17 +54,17 @@ defmodule Conduit.Plug.Retry do | |
| 54 54 | nack(message) |
| 55 55 | end |
| 56 56 | |
| 57 | - defp retry(_, _, retries, error, %{attempts: attempts}) |
| 57 | + defp retry(_, _, retries, error, stacktrace, %{attempts: attempts}) |
| 58 58 | when retries >= attempts - 1 do |
| 59 | - reraise error, System.stacktrace() |
| 59 | + reraise error, stacktrace |
| 60 60 | end |
| 61 61 | |
| 62 | - defp retry(message, next, retries, error, opts) do |
| 62 | + defp retry(message, next, retries, error, stacktrace, opts) do |
| 63 63 | delay = opts.delay * :math.pow(opts.backoff_factor, retries) |
| 64 64 | jitter = :rand.uniform() * delay * opts.jitter |
| 65 65 | wait_time = round(delay + jitter) |
| 66 66 | |
| 67 | - log_error(error, wait_time) |
| 67 | + log_error(error, stacktrace, wait_time) |
| 68 68 | |
| 69 69 | Process.sleep(wait_time) |
| 70 70 | |
| @@ -74,12 +74,12 @@ defmodule Conduit.Plug.Retry do | |
| 74 74 | |> attempt(next, retries + 1, opts) |
| 75 75 | end |
| 76 76 | |
| 77 | - defp log_error(:nack, wait_time) do |
| 77 | + defp log_error(:nack, _, wait_time) do |
| 78 78 | Logger.warn("Message will be retried in #{wait_time}ms because it was nacked") |
| 79 79 | end |
| 80 80 | |
| 81 | - defp log_error(error, wait_time) do |
| 82 | - formatted_error = Exception.format(:error, error) |
| 81 | + defp log_error(error, stacktrace, wait_time) do |
| 82 | + formatted_error = Exception.format(:error, error, stacktrace) |
| 83 83 | |
| 84 84 | Logger.warn([ |
| 85 85 | "Message will be retried in #{wait_time}ms because an exception was raised\n", |
| @@ -4,7 +4,7 @@ defmodule Conduit.Mixfile do | |
| 4 4 | def project do |
| 5 5 | [ |
| 6 6 | app: :conduit, |
| 7 | - version: "0.12.3", |
| 7 | + version: "0.12.4", |
| 8 8 | elixir: "~> 1.3", |
| 9 9 | build_embedded: Mix.env() == :prod, |
| 10 10 | start_permanent: Mix.env() == :prod, |