Non blocking event dispatch (#652)
- Performance improvements for event dispatch
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
class AsyncDispatcher < BaseDispatcher
|
||||
def dispatch(event_name, timestamp, data)
|
||||
EventDispatcherJob.perform_later(event_name, timestamp, data)
|
||||
end
|
||||
|
||||
def publish_event(event_name, timestamp, data)
|
||||
event_object = Events::Base.new(event_name, timestamp, data)
|
||||
# TODO: Move this to worker
|
||||
publish(event_object.method_name, event_object)
|
||||
end
|
||||
|
||||
|
||||
7
app/jobs/event_dispatcher_job.rb
Normal file
7
app/jobs/event_dispatcher_job.rb
Normal file
@@ -0,0 +1,7 @@
|
||||
class EventDispatcherJob < ApplicationJob
|
||||
queue_as :events
|
||||
|
||||
def perform(event_name, timestamp, data)
|
||||
Rails.configuration.dispatcher.async_dispatcher.publish_event(event_name, timestamp, data)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user