11defmodule Shared.EventStoreListener do
22 @ moduledoc false
33 use GenServer
4- require Logger
4+
55 alias EventStore.RecordedEvent
66
7+ require Logger
8+
79 defmodule ErrorContext do
810 @ moduledoc false
911 defstruct [ :error_count , :max_retries , :base_delay_in_ms ]
@@ -30,11 +32,7 @@ defmodule Shared.EventStoreListener do
3032 error_count - 1
3133 end
3234
33- def delay ( % __MODULE__ {
34- error_count: error_count ,
35- max_retries: max_retries ,
36- base_delay_in_ms: base_delay_in_ms
37- } )
35+ def delay ( % __MODULE__ { error_count: error_count , max_retries: max_retries , base_delay_in_ms: base_delay_in_ms } )
3836 when error_count <= max_retries do
3937 # Exponential backoff
4038 round ( :math . pow ( 2 , error_count ) * base_delay_in_ms )
@@ -120,8 +118,7 @@ defmodule Shared.EventStoreListener do
120118 def handle ( event , metadata , _state ) , do: handle ( event , metadata )
121119 defoverridable handle: 3
122120
123- def on_error ( { :error , reason } , _event , _metadata , error_context ) ,
124- do: { :retry , error_context }
121+ def on_error ( { :error , reason } , _event , _metadata , error_context ) , do: { :retry , error_context }
125122
126123 defoverridable on_error: 4
127124
@@ -176,9 +173,7 @@ defmodule Shared.EventStoreListener do
176173 end
177174
178175 def handle_info ( { :events , [ event ] } , % { name: name , error_context: context } = state ) do
179- Logger . warning (
180- "#{ name } is retrying (#{ context . error_count } /#{ context . max_retries } ) failed event #{ inspect ( event ) } "
181- )
176+ Logger . warning ( "#{ name } is retrying (#{ context . error_count } /#{ context . max_retries } ) failed event #{ inspect ( event ) } " )
182177
183178 handle_event ( event , state , context )
184179 end
@@ -196,11 +191,7 @@ defmodule Shared.EventStoreListener do
196191 do: handler_module . terminate ( reason , state )
197192 end
198193
199- defp handle_event (
200- % RecordedEvent { } = event ,
201- % { handler_module: handler_module } = state ,
202- % ErrorContext { } = error_context
203- ) do
194+ defp handle_event ( % RecordedEvent { } = event , % { handler_module: handler_module } = state , % ErrorContext { } = error_context ) do
204195 { domain_event , metadata } = Shared.EventStoreEvent . unwrap ( event )
205196 handler_module . handle ( domain_event , metadata , state )
206197 rescue
@@ -327,15 +318,11 @@ defmodule Shared.EventStoreListener do
327318
328319 # Wir verwenden diese Schreibweisen um die Dependency auf Timex optional zu halten.
329320 defp unify_delay ( % { __struct__: Timex.Duration } = delay ) do
330- { apply ( Timex.Duration , :to_milliseconds , [ delay , [ truncate: true ] ] ) ,
331- apply ( Timex.Duration , :to_string , [ delay ] ) }
321+ { apply ( Timex.Duration , :to_milliseconds , [ delay , [ truncate: true ] ] ) , apply ( Timex.Duration , :to_string , [ delay ] ) }
332322 end
333323
334324 if function_exported? ( Kernel , :to_timeout , 1 ) do
335- defp unify_delay ( delay )
336- when is_list ( delay )
337- when is_integer ( delay )
338- when is_struct ( delay , Duration ) do
325+ defp unify_delay ( delay ) when is_list ( delay ) when is_integer ( delay ) when is_struct ( delay , Duration ) do
339326 t = to_timeout ( delay )
340327 { t , "#{ t } ms" }
341328 end
0 commit comments