class EvilEvents::Core::Events::Notifier::Worker
@api private @since 0.3.0
Constants
- EXCEPTION_POLICY
@api public @since 0.3.0
- IGNORANCE_POLICY
@api public @since 0.3.0
- MAIN_THREAD_POLICY
@api public @since 0.3.0
Attributes
executor[R]
@return [EvilEvents::Core::Events::Notifier::Worker::Executor]
@api private @since 0.3.0
Public Class Methods
new(min_threads:, max_threads:, max_queue:, fallback_policy: MAIN_THREAD_POLICY)
click to toggle source
@option min_threads [Integer] @option max_threads [Integer] @option max_queue [Integer] @option fallback_policy [Symbol]
@see EvilEvents::Core::Events::Notifier::Worker::Executor
@api private @since 0.3.0
# File lib/evil_events/core/events/notifier/worker.rb, line 40 def initialize(min_threads:, max_threads:, max_queue:, fallback_policy: MAIN_THREAD_POLICY) @executor = Executor.new( min_threads: min_threads, max_threads: max_threads, max_queue: max_queue, fallback_policy: fallback_policy ) end
Public Instance Methods
notify(manager, event)
click to toggle source
@param manager [EvilEvents::Core::Events::Manager] @param event [EvilEvents::Core::Events::AbstractEvent]
@api private @since 0.3.0
# File lib/evil_events/core/events/notifier/worker.rb, line 54 def notify(manager, event) event.__call_before_hooks__ manager.subscribers.each { |subscriber| schedule_job(event, subscriber) } event.__call_after_hooks__ end
Private Instance Methods
schedule_job(event, subscriber)
click to toggle source
@param event [EvilEvents::Core::Events::AbstractEvent] @param subscriber [EvilEvents::Core::Events::Subscriber]
@api private @since 0.3.0
# File lib/evil_events/core/events/notifier/worker.rb, line 67 def schedule_job(event, subscriber) executor.execute(Job.new(event, subscriber)) end