class Barrister::RedisTransport
Public Class Methods
new(list_name, options={})
click to toggle source
# File lib/barrister-redis.rb, line 9 def initialize(list_name, options={}) options = { database_url: 'redis://localhost:6379' }.merge(options) @list_name = list_name @client = ::Redis.connect url: options[:database_url] end
Public Instance Methods
request(message)
click to toggle source
# File lib/barrister-redis.rb, line 18 def request(message) # reply-to tells the server where we'll be listening request = { 'reply_to' => 'reply-' + SecureRandom.uuid, 'message' => message } # insert our request at the head of the list @client.lpush(@list_name, JSON.generate(request)) # pop last element off our list in a blocking fashion channel, response = @client.brpop(request['reply_to'], timeout=30) JSON.parse(response)['message'] end