Sha256: 6aea0ab3fa9c4c6ca7f5599bb9ef1b28e8c22845d8adbfce54538d7d352b1c5d
Contents?: true
Size: 1.12 KB
Versions: 2
Compression:
Stored size: 1.12 KB
Contents
require 'yaml' require 'wisper' require 'sidekiq' require 'wisper/sidekiq/version' module Wisper # based on Sidekiq 4.x #delay method, which is not enabled by default in Sidekiq 5.x # https://github.com/mperham/sidekiq/blob/4.x/lib/sidekiq/extensions/generic_proxy.rb # https://github.com/mperham/sidekiq/blob/4.x/lib/sidekiq/extensions/class_methods.rb class SidekiqBroadcaster class Worker include ::Sidekiq::Worker def perform(yml) (subscriber, event, args) = ::YAML.load(yml) subscriber.public_send(event, *args) end end def self.register Wisper.configure do |config| config.broadcaster :sidekiq, SidekiqBroadcaster.new config.broadcaster :async, SidekiqBroadcaster.new end end def broadcast(subscriber, publisher, event, args) options = sidekiq_options(subscriber) Worker.set(options).perform_async(::YAML.dump([subscriber, event, args])) end private def sidekiq_options(subscriber) subscriber.respond_to?(:sidekiq_options) ? subscriber.sidekiq_options : {} end end end Wisper::SidekiqBroadcaster.register
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
wisper-sidekiq-1.2.0 | lib/wisper/sidekiq.rb |
wisper-sidekiq-1.1.0 | lib/wisper/sidekiq.rb |