Sha256: 38c1a46ba90443e7bb4e1cb2d6d250dbacb9ec83d68dab82809c4b86810322f2

Contents?: true

Size: 1.23 KB

Versions: 4

Compression:

Stored size: 1.23 KB

Contents

# frozen_string_literal: true

module PgEventstore
  class EventsProcessorHandlers
    include Extensions::CallbackHandlersExtension

    class << self
      # @param callbacks [PgEventstore::Callbacks]
      # @param handler [#call]
      # @param raw_events [Array<Hash>]
      # @return [void]
      def process_event(callbacks, handler, raw_events)
        raw_event = raw_events.shift
        return sleep 0.5 if raw_event.nil?

        callbacks.run_callbacks(:process, Utils.original_global_position(raw_event)) do
          handler.call(raw_event)
        end
      rescue
        raw_events.unshift(raw_event)
        raise
      end

      # @param callbacks [PgEventstore::Callbacks]
      # @param error [StandardError]
      # @return [void]
      def after_runner_died(callbacks, error)
        callbacks.run_callbacks(:error, error)
      end

      # @param callbacks [PgEventstore::Callbacks]
      # @return [void]
      def before_runner_restored(callbacks)
        callbacks.run_callbacks(:restart)
      end

      # @param callbacks [PgEventstore::Callbacks]
      # @param state [String]
      # @return [void]
      def change_state(callbacks, state)
        callbacks.run_callbacks(:change_state, state)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
pg_eventstore-1.8.0 lib/pg_eventstore/subscriptions/callback_handlers/events_processor_handlers.rb
pg_eventstore-1.7.0 lib/pg_eventstore/subscriptions/callback_handlers/events_processor_handlers.rb
pg_eventstore-1.6.0 lib/pg_eventstore/subscriptions/callback_handlers/events_processor_handlers.rb
pg_eventstore-1.5.0 lib/pg_eventstore/subscriptions/callback_handlers/events_processor_handlers.rb