Class: Kaal::Backend::DispatchAttemptLogger

Inherits:
Object
  • Object
show all
Defined in:
lib/kaal/backend/dispatch_attempt_logger.rb,
sig/kaal/backend/dispatch_attempt_logger.rbs

Overview

Logs dispatch attempts through a backend-provided dispatch registry.

Instance Method Summary collapse

Constructor Details

#initialize(configuration:, dispatch_registry_provider:, logger: nil, node_id_provider: Socket.method(:gethostname)) ⇒ DispatchAttemptLogger

Returns a new instance of DispatchAttemptLogger.

Parameters:

  • configuration: (Kaal::rbs_any)
  • dispatch_registry_provider: (Kaal::rbs_any)
  • logger: (Kaal::rbs_any, nil) (defaults to: nil)
  • node_id_provider: (Kaal::rbs_any) (defaults to: Socket.method(:gethostname))


13
14
15
16
17
18
# File 'lib/kaal/backend/dispatch_attempt_logger.rb', line 13

def initialize(configuration:, dispatch_registry_provider:, logger: nil, node_id_provider: Socket.method(:gethostname))
  @configuration = configuration
  @dispatch_registry_provider = dispatch_registry_provider
  @logger = logger
  @node_id_provider = node_id_provider
end

Instance Method Details

#call(lock_key) ⇒ Kaal::rbs_any

Parameters:

  • lock_key (Kaal::rbs_any)

Returns:

  • (Kaal::rbs_any)


20
21
22
23
24
25
26
27
28
29
30
# File 'lib/kaal/backend/dispatch_attempt_logger.rb', line 20

def call(lock_key)
  return unless @configuration.enable_log_dispatch_registry

  registry = @dispatch_registry_provider.call
  return unless registry

  cron_key, fire_time = DispatchLogging.parse_lock_key(lock_key)
  registry.log_dispatch(cron_key, fire_time, @node_id_provider.call, 'dispatched')
rescue StandardError => e
  (@logger || @configuration.logger)&.error("Failed to log dispatch for #{lock_key}: #{e.message}")
end