insque 0.6.0 → 0.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/insque.gemspec +2 -2
- data/lib/insque/version.rb +1 -1
- data/lib/insque.rb +7 -6
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 41594a38f5f9ff47f8ed7bab78c5d4f488f7b733
|
4
|
+
data.tar.gz: 95c6383a58ce039840906c5684b336a9f273e659
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c518a09723ab1b90f04b693c154cceac146a47e664ba24376ee802c5770aa7285602e96019d0edbe2b76469ca16bb1de4d555a09d5435a91a00e419bedf6038
|
7
|
+
data.tar.gz: f29dd77fbf9d9cd0b0cc5efbf39e07a1aa5fa9864770a4d34fa3f53be35dfb8fc6a8df76d75a10864e68e897ae7a0bbf1a4ab6a636bce45634cc9c76147b0e00
|
data/README.md
CHANGED
@@ -27,7 +27,7 @@ Sender name is the unique identifier of your instance of insque. You can use sev
|
|
27
27
|
|
28
28
|
To broadcast message use:
|
29
29
|
```ruby
|
30
|
-
Insque.broadcast :message_name, {:
|
30
|
+
Insque.broadcast :message_name, { params: { some: :param } }
|
31
31
|
```
|
32
32
|
There is an easy way to use insque as background jobs processing. You can use `send_later` method to call any method of your rails models in background:
|
33
33
|
```ruby
|
data/insque.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
require File.expand_path('../lib/insque/version', __FILE__)
|
3
3
|
|
4
4
|
Gem::Specification.new do |gem|
|
5
|
-
gem.authors = ["
|
5
|
+
gem.authors = ["Yuri Gomozov"]
|
6
6
|
gem.email = ["grophen@gmail.com"]
|
7
7
|
gem.description = "Instant queue. Background processing and message driven communication tool. Faster and simplier alternative to Resque."
|
8
8
|
gem.summary = "Redis-based multi-threaded queue"
|
9
|
-
gem.homepage = "https://github.com/Gropher/
|
9
|
+
gem.homepage = "https://github.com/Gropher/insque"
|
10
10
|
gem.licenses = ['MIT']
|
11
11
|
|
12
12
|
gem.files = `git ls-files`.split($\)
|
data/lib/insque/version.rb
CHANGED
data/lib/insque.rb
CHANGED
@@ -52,7 +52,8 @@ module Insque
|
|
52
52
|
keys = []
|
53
53
|
case recipient
|
54
54
|
when :any
|
55
|
-
|
55
|
+
pointers = @redis.keys('{insque}inbox_pointer_*')
|
56
|
+
keys = pointers.count > 0 ? @redis.mget(*pointers) : []
|
56
57
|
when :self
|
57
58
|
keys = [@inbox]
|
58
59
|
when :slow
|
@@ -60,7 +61,7 @@ module Insque
|
|
60
61
|
else
|
61
62
|
keys = recipient.is_a?(Array) ? recipient : [recipient]
|
62
63
|
end
|
63
|
-
value = { :
|
64
|
+
value = { message: "#{@sender}_#{message}", params: params, broadcasted_at: Time.now.utc }
|
64
65
|
log "SENDING: #{value.to_json} TO #{keys.to_json}" if @debug
|
65
66
|
@redis.multi do |r|
|
66
67
|
keys.each {|k| r.lpush k, value.to_json}
|
@@ -117,7 +118,7 @@ private
|
|
117
118
|
errors << parsed_message
|
118
119
|
delete << m
|
119
120
|
elsif DateTime.parse(parsed_message['broadcasted_at']) < 1.hour.ago.utc
|
120
|
-
restart << parsed_message.merge(:
|
121
|
+
restart << parsed_message.merge(restarted_at: Time.now.utc)
|
121
122
|
delete << m
|
122
123
|
end
|
123
124
|
rescue
|
@@ -131,9 +132,9 @@ private
|
|
131
132
|
if result
|
132
133
|
errors.each {|m| log "ERROR: #{m.to_json}" }
|
133
134
|
restart.each {|m| log "RESTART: #{m.to_json}" }
|
134
|
-
log "CLEANING SUCCESSFULL"
|
135
|
+
log "CLEANING #{inbox} SUCCESSFULL"
|
135
136
|
else
|
136
|
-
log "CLEANING FAILED"
|
137
|
+
log "CLEANING #{inbox} FAILED"
|
137
138
|
end
|
138
139
|
sleep(Random.rand * 300)
|
139
140
|
end
|
@@ -158,7 +159,7 @@ end
|
|
158
159
|
if defined?(ActiveRecord::Base)
|
159
160
|
class ActiveRecord::Base
|
160
161
|
def send_later(method, *args)
|
161
|
-
Insque.broadcast :send_later, {:
|
162
|
+
Insque.broadcast :send_later, { class: self.class.name, id: id, method: method, args: args }, :slow
|
162
163
|
end
|
163
164
|
def self.acts_as_insque_crud(*args)
|
164
165
|
options = args.extract_options!
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: insque
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Yuri Gomozov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-04-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|
@@ -45,7 +45,7 @@ files:
|
|
45
45
|
- lib/insque/railtie.rb
|
46
46
|
- lib/insque/version.rb
|
47
47
|
- lib/tasks/insque.rake
|
48
|
-
homepage: https://github.com/Gropher/
|
48
|
+
homepage: https://github.com/Gropher/insque
|
49
49
|
licenses:
|
50
50
|
- MIT
|
51
51
|
metadata: {}
|