resque-kawai 0.1.5 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -0
- data/README.md +11 -6
- data/lib/generators/rq/add_generator.rb +4 -4
- data/lib/rq_queue.rb +27 -2
- data/lib/version.rb +1 -1
- data/resque-kawai.gemspec +2 -1
- data/spec/rq_queue_spec.rb +16 -1
- metadata +95 -85
- data/Gemfile.lock +0 -51
data/.gitignore
CHANGED
data/README.md
CHANGED
|
@@ -10,13 +10,9 @@ gem 'resque-kawai'
|
|
|
10
10
|
|
|
11
11
|
rails generate rq:add bla
|
|
12
12
|
|
|
13
|
-
And add to config/application.rb
|
|
14
|
-
|
|
15
|
-
config.autoload_paths += %W( #{config.root}/app/models/resque )
|
|
16
|
-
|
|
17
13
|
Consumer
|
|
18
14
|
--------
|
|
19
|
-
app/
|
|
15
|
+
app/workers/rq_bla.rb
|
|
20
16
|
|
|
21
17
|
``` ruby
|
|
22
18
|
class RqBla < RqQueue
|
|
@@ -41,7 +37,7 @@ Insert event into queue like this:
|
|
|
41
37
|
RqBla.add_event(:some_method2, some_x)
|
|
42
38
|
|
|
43
39
|
|
|
44
|
-
Logger for this consumer: Rails.root/log/
|
|
40
|
+
Logger for this consumer: Rails.root/log/workers/bla.log
|
|
45
41
|
|
|
46
42
|
|
|
47
43
|
|
|
@@ -68,3 +64,12 @@ Usefull in specs
|
|
|
68
64
|
```
|
|
69
65
|
|
|
70
66
|
When code call RqBla.some_method1(a,b,c) this would be convert into RqBla.new.some_method1(a,b,c)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
### Insert event with Resque-scheduler
|
|
70
|
+
|
|
71
|
+
``` ruby
|
|
72
|
+
RqBla.add_event_in(10.seconds, :some_method1, 1, 2, 3)
|
|
73
|
+
|
|
74
|
+
RqBla.enqueue_in(10.seconds, :some_method1, 1, 2, 3)
|
|
75
|
+
```
|
|
@@ -6,8 +6,8 @@ if Rails::VERSION::MAJOR >= 3
|
|
|
6
6
|
source_root File.expand_path("../templates", __FILE__)
|
|
7
7
|
|
|
8
8
|
def add_files
|
|
9
|
-
template "consumer.rb", "app/
|
|
10
|
-
template "spec.rb", "spec/
|
|
9
|
+
template "consumer.rb", "app/workers/rq_#{file_path}.rb"
|
|
10
|
+
template "spec.rb", "spec/workers/rq_#{file_path}_spec.rb"
|
|
11
11
|
end
|
|
12
12
|
end
|
|
13
13
|
end
|
|
@@ -20,8 +20,8 @@ if Rails::VERSION::MAJOR == 2
|
|
|
20
20
|
class RqAddGenerator < Rails::Generator::NamedBase
|
|
21
21
|
def manifest
|
|
22
22
|
record do |m|
|
|
23
|
-
m.template "consumer.rb", "app/
|
|
24
|
-
m.template "spec.rb", "spec/
|
|
23
|
+
m.template "consumer.rb", "app/workers/rq_#{file_path}.rb"
|
|
24
|
+
m.template "spec.rb", "spec/workers/rq_#{file_path}_spec.rb"
|
|
25
25
|
end
|
|
26
26
|
end
|
|
27
27
|
end
|
data/lib/rq_queue.rb
CHANGED
|
@@ -24,14 +24,34 @@ class RqQueue
|
|
|
24
24
|
def self.queue_name
|
|
25
25
|
@queue
|
|
26
26
|
end
|
|
27
|
+
|
|
28
|
+
|
|
27
29
|
|
|
28
30
|
def self.add_event(method_name, *args)
|
|
29
31
|
Resque.enqueue(self, method_name.to_s, args)
|
|
30
32
|
end
|
|
31
33
|
|
|
34
|
+
def self.enqueue(method_name, *args)
|
|
35
|
+
add_event method_name, *args
|
|
36
|
+
end
|
|
37
|
+
|
|
32
38
|
def self.method_missing(method, *args)
|
|
33
39
|
add_event(method, *args)
|
|
34
40
|
end
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
# For resque-scheduler
|
|
45
|
+
def self.add_event_in(times, method_name, *args)
|
|
46
|
+
Resque.enqueue_in(times, self, method_name.to_s, args)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# For resque-scheduler
|
|
50
|
+
def self.enqueue_in(times, method_name, *args)
|
|
51
|
+
add_event_in(times, method_name, *args)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
|
|
35
55
|
|
|
36
56
|
def self.logger
|
|
37
57
|
@logger ||= Logger.new(logger_path).tap do |logger|
|
|
@@ -53,7 +73,8 @@ class RqQueue
|
|
|
53
73
|
logger.info "done #{method_name}, #{"%.6f" % (Time.now - start_time)} s" if benchmark
|
|
54
74
|
|
|
55
75
|
rescue => ex
|
|
56
|
-
logger.error "!Failed event: #{method_name} => #{ex.message}"
|
|
76
|
+
logger.error "!Failed event: #{method_name} => #{ex.message}"
|
|
77
|
+
notify_about_error(ex)
|
|
57
78
|
raise ex
|
|
58
79
|
end
|
|
59
80
|
|
|
@@ -72,7 +93,7 @@ class RqQueue
|
|
|
72
93
|
|
|
73
94
|
def logger_path
|
|
74
95
|
@logger_path ||= begin
|
|
75
|
-
"#{Rails.root}/log/
|
|
96
|
+
"#{Rails.root}/log/workers/#{extract_queue_name}.log"
|
|
76
97
|
end
|
|
77
98
|
end
|
|
78
99
|
|
|
@@ -87,4 +108,8 @@ class RqQueue
|
|
|
87
108
|
self.class.queue_name
|
|
88
109
|
end
|
|
89
110
|
|
|
111
|
+
def self.notify_about_error(exception)
|
|
112
|
+
# stub
|
|
113
|
+
end
|
|
114
|
+
|
|
90
115
|
end
|
data/lib/version.rb
CHANGED
data/resque-kawai.gemspec
CHANGED
data/spec/rq_queue_spec.rb
CHANGED
|
@@ -62,7 +62,22 @@ describe RqQueue do
|
|
|
62
62
|
it "should insert event with custom method" do
|
|
63
63
|
Resque.should_receive(:enqueue).with(RqTest, 'super', [[1, 2, 3]])
|
|
64
64
|
RqTest.add_event(:super, [1, 2, 3])
|
|
65
|
-
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
it "should insert event with custom method enqueue" do
|
|
68
|
+
Resque.should_receive(:enqueue).with(RqTest, 'super', [1, 2, 3])
|
|
69
|
+
RqTest.enqueue(:super, 1, 2, 3)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
it "enqueue in" do
|
|
73
|
+
Resque.should_receive(:enqueue_in).with(10, RqTest, 'super', [1, 2, 3])
|
|
74
|
+
RqTest.enqueue_in(10, :super, 1, 2, 3)
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
it "add event in" do
|
|
78
|
+
Resque.should_receive(:enqueue_in).with(10, RqTest, 'super', [1, 2, 3])
|
|
79
|
+
RqTest.add_event_in(10, :super, 1, 2, 3)
|
|
80
|
+
end
|
|
66
81
|
|
|
67
82
|
describe "consume" do
|
|
68
83
|
before :each do
|
metadata
CHANGED
|
@@ -1,91 +1,105 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: resque-kawai
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
5
|
-
prerelease:
|
|
6
|
-
segments:
|
|
7
|
-
- 0
|
|
8
|
-
- 1
|
|
9
|
-
- 5
|
|
10
|
-
version: 0.1.5
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.6
|
|
5
|
+
prerelease:
|
|
11
6
|
platform: ruby
|
|
12
|
-
authors:
|
|
7
|
+
authors:
|
|
13
8
|
- Makarchev Konstantin
|
|
14
9
|
autorequire: resque-kawai.rb
|
|
15
10
|
bindir: bin
|
|
16
11
|
cert_chain: []
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
dependencies:
|
|
21
|
-
- !ruby/object:Gem::Dependency
|
|
12
|
+
date: 2012-08-17 00:00:00.000000000 Z
|
|
13
|
+
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
22
15
|
name: activesupport
|
|
23
|
-
|
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
|
25
17
|
none: false
|
|
26
|
-
requirements:
|
|
27
|
-
- -
|
|
28
|
-
- !ruby/object:Gem::Version
|
|
29
|
-
|
|
30
|
-
segments:
|
|
31
|
-
- 0
|
|
32
|
-
version: "0"
|
|
18
|
+
requirements:
|
|
19
|
+
- - ! '>='
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: '0'
|
|
33
22
|
type: :runtime
|
|
34
|
-
version_requirements: *id001
|
|
35
|
-
- !ruby/object:Gem::Dependency
|
|
36
|
-
name: resque
|
|
37
23
|
prerelease: false
|
|
38
|
-
|
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
+
none: false
|
|
26
|
+
requirements:
|
|
27
|
+
- - ! '>='
|
|
28
|
+
- !ruby/object:Gem::Version
|
|
29
|
+
version: '0'
|
|
30
|
+
- !ruby/object:Gem::Dependency
|
|
31
|
+
name: resque
|
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
|
39
33
|
none: false
|
|
40
|
-
requirements:
|
|
41
|
-
- -
|
|
42
|
-
- !ruby/object:Gem::Version
|
|
43
|
-
|
|
44
|
-
segments:
|
|
45
|
-
- 0
|
|
46
|
-
version: "0"
|
|
34
|
+
requirements:
|
|
35
|
+
- - ! '>='
|
|
36
|
+
- !ruby/object:Gem::Version
|
|
37
|
+
version: '0'
|
|
47
38
|
type: :runtime
|
|
48
|
-
version_requirements: *id002
|
|
49
|
-
- !ruby/object:Gem::Dependency
|
|
50
|
-
name: rspec
|
|
51
39
|
prerelease: false
|
|
52
|
-
|
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
+
none: false
|
|
42
|
+
requirements:
|
|
43
|
+
- - ! '>='
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
version: '0'
|
|
46
|
+
- !ruby/object:Gem::Dependency
|
|
47
|
+
name: rspec
|
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
|
53
49
|
none: false
|
|
54
|
-
requirements:
|
|
55
|
-
- -
|
|
56
|
-
- !ruby/object:Gem::Version
|
|
57
|
-
|
|
58
|
-
segments:
|
|
59
|
-
- 0
|
|
60
|
-
version: "0"
|
|
50
|
+
requirements:
|
|
51
|
+
- - ! '>='
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '0'
|
|
61
54
|
type: :development
|
|
62
|
-
|
|
63
|
-
|
|
55
|
+
prerelease: false
|
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
+
none: false
|
|
58
|
+
requirements:
|
|
59
|
+
- - ! '>='
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0'
|
|
62
|
+
- !ruby/object:Gem::Dependency
|
|
64
63
|
name: rake
|
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
|
65
|
+
none: false
|
|
66
|
+
requirements:
|
|
67
|
+
- - ! '>='
|
|
68
|
+
- !ruby/object:Gem::Version
|
|
69
|
+
version: '0'
|
|
70
|
+
type: :development
|
|
65
71
|
prerelease: false
|
|
66
|
-
|
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
67
73
|
none: false
|
|
68
|
-
requirements:
|
|
69
|
-
- -
|
|
70
|
-
- !ruby/object:Gem::Version
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
74
|
+
requirements:
|
|
75
|
+
- - ! '>='
|
|
76
|
+
- !ruby/object:Gem::Version
|
|
77
|
+
version: '0'
|
|
78
|
+
- !ruby/object:Gem::Dependency
|
|
79
|
+
name: json
|
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
|
81
|
+
none: false
|
|
82
|
+
requirements:
|
|
83
|
+
- - ! '>='
|
|
84
|
+
- !ruby/object:Gem::Version
|
|
85
|
+
version: '0'
|
|
75
86
|
type: :development
|
|
76
|
-
|
|
77
|
-
|
|
87
|
+
prerelease: false
|
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
89
|
+
none: false
|
|
90
|
+
requirements:
|
|
91
|
+
- - ! '>='
|
|
92
|
+
- !ruby/object:Gem::Version
|
|
93
|
+
version: '0'
|
|
94
|
+
description: Syntax sugar for Resque consumers. Each consumer is a class, with clean
|
|
95
|
+
interface, and custom logger. Usefull when count of different events ~100 and more.
|
|
78
96
|
email: kostya27@gmail.com
|
|
79
97
|
executables: []
|
|
80
|
-
|
|
81
98
|
extensions: []
|
|
82
|
-
|
|
83
99
|
extra_rdoc_files: []
|
|
84
|
-
|
|
85
|
-
files:
|
|
100
|
+
files:
|
|
86
101
|
- .gitignore
|
|
87
102
|
- Gemfile
|
|
88
|
-
- Gemfile.lock
|
|
89
103
|
- LICENSE
|
|
90
104
|
- README.md
|
|
91
105
|
- Rakefile
|
|
@@ -99,39 +113,35 @@ files:
|
|
|
99
113
|
- spec/rq_queue_spec.rb
|
|
100
114
|
- spec/spec_helper.rb
|
|
101
115
|
- spec/test_class.rb
|
|
102
|
-
has_rdoc: true
|
|
103
116
|
homepage: http://github.com/kostya/resque-kawai
|
|
104
117
|
licenses: []
|
|
105
|
-
|
|
106
118
|
post_install_message:
|
|
107
119
|
rdoc_options: []
|
|
108
|
-
|
|
109
|
-
require_paths:
|
|
120
|
+
require_paths:
|
|
110
121
|
- lib
|
|
111
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
122
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
112
123
|
none: false
|
|
113
|
-
requirements:
|
|
114
|
-
- -
|
|
115
|
-
- !ruby/object:Gem::Version
|
|
116
|
-
|
|
117
|
-
segments:
|
|
124
|
+
requirements:
|
|
125
|
+
- - ! '>='
|
|
126
|
+
- !ruby/object:Gem::Version
|
|
127
|
+
version: '0'
|
|
128
|
+
segments:
|
|
118
129
|
- 0
|
|
119
|
-
|
|
120
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
130
|
+
hash: -858566573
|
|
131
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
121
132
|
none: false
|
|
122
|
-
requirements:
|
|
123
|
-
- -
|
|
124
|
-
- !ruby/object:Gem::Version
|
|
125
|
-
|
|
126
|
-
segments:
|
|
133
|
+
requirements:
|
|
134
|
+
- - ! '>='
|
|
135
|
+
- !ruby/object:Gem::Version
|
|
136
|
+
version: '0'
|
|
137
|
+
segments:
|
|
127
138
|
- 0
|
|
128
|
-
|
|
139
|
+
hash: -858566573
|
|
129
140
|
requirements: []
|
|
130
|
-
|
|
131
141
|
rubyforge_project:
|
|
132
|
-
rubygems_version: 1.
|
|
142
|
+
rubygems_version: 1.8.24
|
|
133
143
|
signing_key:
|
|
134
144
|
specification_version: 3
|
|
135
|
-
summary: Syntax sugar for Resque consumers. Each consumer is a class, with clean interface,
|
|
145
|
+
summary: Syntax sugar for Resque consumers. Each consumer is a class, with clean interface,
|
|
146
|
+
and custom logger. Usefull when count of different events ~100 and more.
|
|
136
147
|
test_files: []
|
|
137
|
-
|
data/Gemfile.lock
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
PATH
|
|
2
|
-
remote: .
|
|
3
|
-
specs:
|
|
4
|
-
resque-kawai (0.1.4)
|
|
5
|
-
activesupport
|
|
6
|
-
resque
|
|
7
|
-
|
|
8
|
-
GEM
|
|
9
|
-
remote: http://rubygems.org/
|
|
10
|
-
specs:
|
|
11
|
-
activesupport (3.2.3)
|
|
12
|
-
i18n (~> 0.6)
|
|
13
|
-
multi_json (~> 1.0)
|
|
14
|
-
diff-lcs (1.1.3)
|
|
15
|
-
i18n (0.6.0)
|
|
16
|
-
multi_json (1.3.2)
|
|
17
|
-
rack (1.4.1)
|
|
18
|
-
rack-protection (1.2.0)
|
|
19
|
-
rack
|
|
20
|
-
rake (0.9.2.2)
|
|
21
|
-
redis (2.2.2)
|
|
22
|
-
redis-namespace (1.0.3)
|
|
23
|
-
redis (< 3.0.0)
|
|
24
|
-
resque (1.20.0)
|
|
25
|
-
multi_json (~> 1.0)
|
|
26
|
-
redis-namespace (~> 1.0.2)
|
|
27
|
-
sinatra (>= 0.9.2)
|
|
28
|
-
vegas (~> 0.1.2)
|
|
29
|
-
rspec (2.9.0)
|
|
30
|
-
rspec-core (~> 2.9.0)
|
|
31
|
-
rspec-expectations (~> 2.9.0)
|
|
32
|
-
rspec-mocks (~> 2.9.0)
|
|
33
|
-
rspec-core (2.9.0)
|
|
34
|
-
rspec-expectations (2.9.1)
|
|
35
|
-
diff-lcs (~> 1.1.3)
|
|
36
|
-
rspec-mocks (2.9.0)
|
|
37
|
-
sinatra (1.3.2)
|
|
38
|
-
rack (~> 1.3, >= 1.3.6)
|
|
39
|
-
rack-protection (~> 1.2)
|
|
40
|
-
tilt (~> 1.3, >= 1.3.3)
|
|
41
|
-
tilt (1.3.3)
|
|
42
|
-
vegas (0.1.11)
|
|
43
|
-
rack (>= 1.0.0)
|
|
44
|
-
|
|
45
|
-
PLATFORMS
|
|
46
|
-
ruby
|
|
47
|
-
|
|
48
|
-
DEPENDENCIES
|
|
49
|
-
rake
|
|
50
|
-
resque-kawai!
|
|
51
|
-
rspec
|