Sha256: b97109388c457c892c93075068ad68313546225c3803195475ee3bd8baec3992

Contents?: true

Size: 598 Bytes

Versions: 7

Compression:

Stored size: 598 Bytes

Contents

class Jason::OutboundMessageQueueWorker
  include Sidekiq::Worker if defined?(Sidekiq) # Even if not using Pusher, this gets autoloaded

  def perform
    batch = get_batch
    return if batch.size == 0

    Jason.pusher.trigger_batch(batch)
  end

  private

  def get_batch
    batch_json = $redis_jason.multi do |r|
      r.lrange("jason:outbound_message_queue", 0, 9) # get first 10 elements
      r.ltrim("jason:outbound_message_queue", 10, -1) # delete first 10 elements
    end[0]

    batch_json.map { |event| JSON.parse(event).with_indifferent_access } # Pusher wants symbol keys
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
jason-rails-0.7.5.1 app/workers/jason/outbound_message_queue_worker.rb
jason-rails-0.8.0 app/workers/jason/outbound_message_queue_worker.rb
jason-rails-0.7.5 app/workers/jason/outbound_message_queue_worker.rb
jason-rails-0.7.3 app/workers/jason/outbound_message_queue_worker.rb
jason-rails-0.7.2 app/workers/jason/outbound_message_queue_worker.rb
jason-rails-0.7.1 app/workers/jason/outbound_message_queue_worker.rb
jason-rails-0.7.0 app/workers/jason/outbound_message_queue_worker.rb