Class: GameQueue
Overview
Либа, добавляет и ивлекает сообщения из общей глобальной очереди сообщений В конфиге: GameQueue.redis = $redis GameQueue.queue_name = ‘skyburg_main_queue’
Добавление сообщений GameQueue.push(:combat_created, ‘fucking’, super: ‘params’)
Получение сообещений GameQueue.pop
Instance Attribute Summary collapse
-
#queue_name ⇒ Object
Returns the value of attribute queue_name.
-
#redis ⇒ Object
Returns the value of attribute redis.
Class Method Summary collapse
Instance Method Summary collapse
-
#async_push(*params) ⇒ Object
См.
-
#pop ⇒ Object
Returns <Array[String, Object]>::.
-
#push(message_name, message_body) ⇒ Object
Parameters message_name<String>: тип сообщения message_body<Object>:: любой ruby объект с простыми данными, хэш, массив, число, строка…
Instance Attribute Details
#queue_name ⇒ Object
Returns the value of attribute queue_name.
15 16 17 |
# File 'lib/game-queue.rb', line 15 def queue_name @queue_name end |
#redis ⇒ Object
Returns the value of attribute redis.
15 16 17 |
# File 'lib/game-queue.rb', line 15 def redis @redis end |
Class Method Details
.method_missing(method_name, *params) ⇒ Object
17 18 19 |
# File 'lib/game-queue.rb', line 17 def self.method_missing(method_name, *params) instance.send(method_name, *params) end |
Instance Method Details
#async_push(*params) ⇒ Object
См. push
29 30 31 |
# File 'lib/game-queue.rb', line 29 def async_push(*params) Thread.new { push *params } end |
#pop ⇒ Object
Returns
- <Array[String, Object]>
36 37 38 39 |
# File 'lib/game-queue.rb', line 36 def pop result = $redis.rpop(queue_name) eval(result) if result end |
#push(message_name, message_body) ⇒ Object
Parameters
message_name<String>: тип сообщения
- message_body<Object>
-
любой ruby объект с простыми данными, хэш, массив, число, строка…
24 25 26 |
# File 'lib/game-queue.rb', line 24 def push(, ) $redis.lpush(queue_name, [.to_s, ].to_s) end |