Current section

51 Versions

Jump to

Compare versions

3 files changed
+12 additions
-3 deletions
  @@ -38,4 +38,4 @@
38 38 [{<<"app">>,<<"watcher">>},
39 39 {<<"optional">>,false},
40 40 {<<"requirement">>,<<"~> 1.0">>}]}]}.
41 - {<<"version">>,<<"0.9.9">>}.
41 + {<<"version">>,<<"0.9.10">>}.
  @@ -89,6 +89,16 @@ defmodule Verk.WorkersManager do
89 89 def handle_info({ :DOWN, _mref, _worker, :normal }, state), do: { :noreply, state, 0 }
90 90
91 91 def handle_info({ :DOWN, mref, _, worker, { reason, stack } }, state) do
92 + handle_down!(mref, worker, reason, stack, state)
93 + { :noreply, state, 0 }
94 + end
95 +
96 + def handle_info({ :DOWN, mref, _, worker, reason }, state) do
97 + handle_down!(mref, worker, reason, [], state)
98 + { :noreply, state, 0 }
99 + end
100 +
101 + defp handle_down!(mref, worker, reason, stack, state) do
92 102 Logger.debug "Worker got down, reason: #{inspect reason}, #{inspect([mref, worker])}"
93 103 case :ets.match(state.monitors, {worker, :'_', :'$1', mref, :'$2'}) do
94 104 [[job, start_time]] ->
  @@ -96,7 +106,6 @@ defmodule Verk.WorkersManager do
96 106 fail(job, start_time, worker, mref, state.monitors, state.queue_manager_name, exception, stack)
97 107 error -> Logger.warn("Worker got down but it was not found, error: #{inspect error}")
98 108 end
99 - { :noreply, state, 0 }
100 109 end
101 110
102 111 defp start_job(job = %Verk.Job{ jid: job_id, class: module, args: args }, state) do
  @@ -7,7 +7,7 @@ defmodule Verk.Mixfile do
7 7
8 8 def project do
9 9 [app: :verk,
10 - version: "0.9.9",
10 + version: "0.9.10",
11 11 elixir: "~> 1.0",
12 12 build_embedded: Mix.env == :prod,
13 13 start_permanent: Mix.env == :prod,