Sha256: af9d44d98064cd54eb4acf47f486e3a4883256748cfceb3f028d31bd40fe3ff1
Contents?: true
Size: 942 Bytes
Versions: 2
Compression:
Stored size: 942 Bytes
Contents
module PubsubNotifier module Broadcasters class ActiveJobBroadcaster < Base def broadcast(subscriber, publisher, event, args) configured_job.perform_later(subscriber.name, event, args) rescue ActiveJob::SerializationError => e # NOTE: Fallback if global_id is blank logger.warn { e.inspect } configured_job.perform_now(subscriber.name, event, *args) end private def configured_job BroadcastJob.set(options) end def default_options { wait: nil, wait_until: nil, queue: :default } end class BroadcastJob < ::ActiveJob::Base def perform(subscriber_name, event, args) subscriber = subscriber_name.constantize subscriber.public_send(event, *args) end end end end end PubsubNotifier.register_broadcaster :async, PubsubNotifier::Broadcasters::ActiveJobBroadcaster
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pubsub_notifier-0.1.2 | lib/pubsub_notifier/broadcasters/active_job_broadcaster.rb |
pubsub_notifier-0.1.1 | lib/pubsub_notifier/broadcasters/active_job_broadcaster.rb |