Module: Insque
- Defined in:
- lib/insque.rb,
lib/insque/railtie.rb,
lib/insque/version.rb,
lib/insque/json_logger.rb,
lib/insque/json_formatter.rb,
lib/generators/insque/initializer_generator.rb
Defined Under Namespace
Modules: Generators
Classes: JsonFormatter, JsonLogger, Railtie
Constant Summary
collapse
- DEFAULT_INBOX_TTL =
10800
- DEFAULT_PROCESSING_TTL =
3600
- VERSION =
"0.7.4"
Class Method Summary
collapse
Class Method Details
.broadcast(message, params = nil, recipient = :any) ⇒ Object
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
# File 'lib/insque.rb', line 67
def self.broadcast message, params = nil, recipient = :any
keys = []
case recipient
when :any
pointers = @redis.keys('{insque}inbox_pointer_*')
keys = pointers.count > 0 ? @redis.mget(*pointers) : []
when :self
keys = [@inbox]
when :slow
keys = [@slow_inbox]
else
keys = recipient.is_a?(Array) ? recipient : [recipient]
end
value = { message: "#{@sender}_#{message}", params: params, broadcasted_at: Time.now.utc }.to_json
logger.debug event: :sending, message: value, to: keys.to_json
@redis.multi do |r|
keys.each {|k| r.lpush k, value}
end
end
|
.inbox_ttl ⇒ Object
16
17
18
|
# File 'lib/insque.rb', line 16
def self.inbox_ttl
@inbox_ttl || DEFAULT_INBOX_TTL
end
|
.inbox_ttl=(val) ⇒ Object
12
13
14
|
# File 'lib/insque.rb', line 12
def self.inbox_ttl= val
@inbox_ttl = val
end
|
.janitor(redis = nil) ⇒ Object
96
97
98
|
# File 'lib/insque.rb', line 96
def self.janitor redis=nil
real_janitor @inbox, @processing, (redis || create_redis_connection), @inbox_pointer
end
|
.listen(worker_name = '', redis = nil) ⇒ Object
87
88
89
90
|
# File 'lib/insque.rb', line 87
def self.listen worker_name='', redis=nil
redis ||= create_redis_connection
do_listen @inbox, @processing, redis, worker_name, @inbox_pointer
end
|
.logger ⇒ Object
40
41
42
|
# File 'lib/insque.rb', line 40
def self.logger
@logger ||= JsonLogger.new STDOUT, additional_fields: { tag: 'insque' }
end
|
.logger=(l) ⇒ Object
36
37
38
|
# File 'lib/insque.rb', line 36
def self.logger= l
@logger = l
end
|
.processing_ttl ⇒ Object
24
25
26
|
# File 'lib/insque.rb', line 24
def self.processing_ttl
@processing_ttl || DEFAULT_PROCESSING_TTL
end
|
.processing_ttl=(val) ⇒ Object
20
21
22
|
# File 'lib/insque.rb', line 20
def self.processing_ttl= val
@processing_ttl = val
end
|
.redis ⇒ Object
32
33
34
|
# File 'lib/insque.rb', line 32
def self.redis
@redis
end
|
.redis=(redis) ⇒ Object
28
29
30
|
# File 'lib/insque.rb', line 28
def self.redis= redis
@redis = redis
end
|
.redis_class=(klass) ⇒ Object
44
45
46
|
# File 'lib/insque.rb', line 44
def self.redis_class= klass
@redis_class = klass
end
|
.redis_config ⇒ Object
48
49
50
|
# File 'lib/insque.rb', line 48
def self.redis_config
@redis_config
end
|
.redis_config=(redis) ⇒ Object
52
53
54
55
|
# File 'lib/insque.rb', line 52
def self.redis_config= redis
@redis_config = redis
@redis = self.create_redis_connection
end
|
.sender=(sender) ⇒ Object
57
58
59
60
61
62
63
64
65
|
# File 'lib/insque.rb', line 57
def self.sender= sender
@sender = sender
@inbox = "{insque}inbox_#{sender}"
@inbox_pointer = "{insque}inbox_pointer_#{sender}"
@processing = "{insque}processing_#{sender}"
@slow_inbox = "{insque}slow_inbox_#{sender}"
@slow_processing = "{insque}slow_processing_#{sender}"
create_send_later_handler
end
|
.slow_janitor(redis = nil) ⇒ Object
100
101
102
|
# File 'lib/insque.rb', line 100
def self.slow_janitor redis=nil
real_janitor @slow_inbox, @slow_processing, (redis || create_redis_connection)
end
|
.slow_listen(worker_name = '', redis = nil) ⇒ Object
92
93
94
|
# File 'lib/insque.rb', line 92
def self.slow_listen worker_name='', redis=nil
do_listen @slow_inbox, @slow_processing, (redis || create_redis_connection), worker_name
end
|