class Dynamiq::Client
Public Instance Methods
push_message(message)
click to toggle source
# File lib/dynamiq/client.rb, line 3 def push_message(message) redis_pool.with do |conn| atomic_push conn, [ JSON.parse(message) ] end end
Private Instance Methods
atomic_push(conn, payloads)
click to toggle source
# File lib/dynamiq/client.rb, line 11 def atomic_push(conn, payloads) if payloads.first['at'] payload = payloads.map do |hash| [ hash.delete('at').to_s, Sidekiq.dump_json(hash) ] end conn.zadd 'schedule', payload else q = payloads.first['queue'] to_push = payloads.map do |entry| [ entry.delete('score').to_i, Sidekiq.dump_json(entry) ] end conn.sadd :queues, q conn.sadd :dynamic_queues, q conn.zadd [:dynamic_queue, q].join(':'), to_push end end