class Rcom::Task

Attributes

channel[R]
node[R]

Public Class Methods

new(params) click to toggle source
# File lib/rcom/task.rb, line 5
def initialize(params)
  @node = params[:node]
  @channel = params[:channel]
end

Public Instance Methods

publish(message) click to toggle source
# File lib/rcom/task.rb, line 10
def publish(message)
  begin
    node.lpush(channel, message.to_msgpack)
    return true
  rescue
    return nil
  end
end
subscribe() { |message| ... } click to toggle source
# File lib/rcom/task.rb, line 19
def subscribe
  begin
    loop do
      ch, request = node.brpop(channel)
      message = MessagePack.unpack(
        request,
        symbolize_keys: true
      )
      yield message
    end
  rescue Interrupt => _
  end
end