Sha256: a77140c696ac83369d09bfbbaf4e95a08fc5089daadf029ddfcfd1d58bc0a834
Contents?: true
Size: 1.26 KB
Versions: 1
Compression:
Stored size: 1.26 KB
Contents
# -*- coding: utf-8 -*- # Либа, добавляет и ивлекает сообщения из общей глобальной очереди сообщений # В конфиге: # GameQueue.redis = $redis # GameQueue.queue_name = 'skyburg_main_queue' # # Добавление сообщений # GameQueue.push(:combat_created, {some: 'fucking', super: 'params'}) # # Получение сообещений # GameQueue.pop class GameQueue require 'singleton' include Singleton attr_accessor :redis, :queue_name def self.method_missing(method_name, *params) instance.send(method_name, *params) end # ==== Parameters # message_name<String>: тип сообщения # message_body<Object>:: любой ruby объект с простыми данными, хэш, массив, число, строка... def push(message_name, message_body) redis.lpush(queue_name, Marshal.dump([message_name.to_s, message_body])) end # См. push def async_push(*params) Thread.new { push *params } end # ==== Returns # <Array[String, Object]>:: def pop result = redis.rpop(queue_name) Marshal.load(result) if result end # ==== Description # очищает всю очередь def clean! redis.del(queue_name) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
game-queue-0.2.4 | lib/game-queue.rb |