Method: MessageBus::Backends::Redis#global_backlog

Defined in:
lib/message_bus/backends/redis.rb

#global_backlog(last_id = 0) ⇒ Array<MessageBus::Message>

Get messages from the global backlog

Parameters:

  • last_id (#to_i) (defaults to: 0)

    the global ID of the last message that the caller received

Returns:

  • (Array<MessageBus::Message>)

    all messages published on any channel since the specified last ID



218
219
220
221
222
223
224
225
226
227
228
229
230
231
# File 'lib/message_bus/backends/redis.rb', line 218

def global_backlog(last_id = 0)
  items = pub_redis.zrangebyscore global_backlog_key, last_id.to_i + 1, "+inf"

  items.map! do |i|
    pipe = i.index "|"
    message_id = i[0..pipe].to_i
    channel = i[pipe + 1..-1]
    m = get_message(channel, message_id)
    m
  end

  items.compact!
  items
end