resque-cleaner 0.2.6 → 0.2.7

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/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 0.2.7 (2012-01-17)
2
+
3
+ * Support Travis CI
4
+ * Support failure jobs without payload information (#11).
5
+
1
6
  ## 0.2.6 (2011-08-23)
2
7
 
3
8
  * Follow the latest resque for date format.
data/README.markdown CHANGED
@@ -1,4 +1,4 @@
1
- ResqueCleaner
1
+ ResqueCleaner [ ![Travis-CI](https://secure.travis-ci.org/ono/resque-cleaner.png?branch=master "Travis CI") ](http://travis-ci.org/ono/resque-cleaner "Travis CI for resque-cleaner")
2
2
  ==============
3
3
 
4
4
  [github.com/ono/resque-cleaner](https://github.com/ono/resque-cleaner)
@@ -264,7 +264,7 @@ You could know if the limiter is on with on? method.
264
264
  You can change the maximum number of the limiter with maximum attribute.
265
265
 
266
266
  ```ruby
267
- > cleaner.limiter.maxmum = 3000
267
+ > cleaner.limiter.maximum = 3000
268
268
  => 3,000
269
269
  > cleaner.limiter.count
270
270
  => 3,000
@@ -108,7 +108,11 @@ module ResqueCleaner
108
108
  @jobs = cleaner.select
109
109
  @stats, @total = {}, {"total" => 0, "1h" => 0, "3h" => 0, "1d" => 0, "3d" => 0, "7d" => 0}
110
110
  @jobs.each do |job|
111
- klass = job["payload"]["class"]
111
+ klass = if job["payload"] && job["payload"]["class"]
112
+ job["payload"]["class"]
113
+ else
114
+ "UNKNOWN"
115
+ end
112
116
  failed_at = Time.parse job["failed_at"]
113
117
 
114
118
  @stats[klass] ||= {"total" => 0, "1h" => 0, "3h" => 0, "1d" => 0, "3d" => 0, "7d" => 0}
@@ -53,7 +53,7 @@ module Resque
53
53
  def stats_by_class(&block)
54
54
  jobs, stats = select(&block), {}
55
55
  jobs.each do |job|
56
- klass = job["payload"]["class"]
56
+ klass = job["payload"] && job["payload"]["class"] ? job["payload"]["class"] : "UNKNOWN"
57
57
  stats[klass] ||= 0
58
58
  stats[klass] += 1
59
59
  end
@@ -171,7 +171,11 @@ module Resque
171
171
 
172
172
  # Returns true if the class of the job matches. Otherwise returns false.
173
173
  def klass?(klass_or_name)
174
- self["payload"]["class"] == klass_or_name.to_s
174
+ if self["payload"] && self["payload"]["class"]
175
+ self["payload"]["class"] == klass_or_name.to_s
176
+ else
177
+ klass_or_name=="UNKNOWN"
178
+ end
175
179
  end
176
180
 
177
181
  # Returns true if the exception raised by the failed job matches. Otherwise returns false.
@@ -211,7 +215,7 @@ module Resque
211
215
  end
212
216
  end
213
217
 
214
- # Returns jobs. If numbers of jobs is more than maixum, it returns only
218
+ # Returns jobs. If numbers of jobs is more than maximum, it returns only
215
219
  # the maximum.
216
220
  def jobs
217
221
  if @locked
@@ -153,6 +153,12 @@ context "ResqueCleaner" do
153
153
  assert_equal 7, ret['BadJobWithSyntaxError']
154
154
  end
155
155
 
156
+ test "#stats_by_class works with broken log" do
157
+ add_empty_payload_failure
158
+ ret = @cleaner.stats_by_class
159
+ assert_equal 1, ret['UNKNOWN']
160
+ end
161
+
156
162
  test "#stats_by_exception returns stats grouped by exception" do
157
163
  ret = @cleaner.stats_by_exception
158
164
  assert_equal 35, ret['RuntimeError']
data/test/test_helper.rb CHANGED
@@ -137,3 +137,17 @@ end
137
137
  def queue_size(*queues)
138
138
  queues.inject(0){|sum,queue| sum + Resque.size(queue).to_i}
139
139
  end
140
+
141
+ def add_empty_payload_failure
142
+ data = {
143
+ :failed_at => Time.now.strftime("%Y/%m/%d %H:%M:%S %Z"),
144
+ :payload => nil,
145
+ :exception => "Resque::DirtyExit",
146
+ :error => "Resque::DirtyExit",
147
+ :backtrace => [],
148
+ :worker => "worker",
149
+ :queue => "queue"
150
+ }
151
+ data = Resque.encode(data)
152
+ Resque.redis.rpush(:failed, data)
153
+ end
metadata CHANGED
@@ -1,49 +1,38 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: resque-cleaner
3
- version: !ruby/object:Gem::Version
4
- hash: 27
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 2
9
- - 6
10
- version: 0.2.6
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.7
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Tatsuya Ono
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-08-23 00:00:00 +01:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2012-01-17 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: resque
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70281247431200 !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
18
+ requirements:
27
19
  - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 15
30
- segments:
31
- - 1
32
- - 0
33
- version: "1.0"
20
+ - !ruby/object:Gem::Version
21
+ version: '1.0'
34
22
  type: :runtime
35
- version_requirements: *id001
36
- description: " resque-cleaner maintains the cleanliness of failed jobs on Resque.\n"
23
+ prerelease: false
24
+ version_requirements: *70281247431200
25
+ description: ! ' resque-cleaner maintains the cleanliness of failed jobs on Resque.
26
+
27
+ '
37
28
  email: ononoma@gmail.com
38
29
  executables: []
39
-
40
30
  extensions: []
41
-
42
- extra_rdoc_files:
31
+ extra_rdoc_files:
43
32
  - LICENSE
44
33
  - README.markdown
45
34
  - CHANGELOG.md
46
- files:
35
+ files:
47
36
  - README.markdown
48
37
  - CHANGELOG.md
49
38
  - Rakefile
@@ -61,39 +50,29 @@ files:
61
50
  - test/resque_cleaner_test.rb
62
51
  - test/resque_web_test.rb
63
52
  - test/test_helper.rb
64
- has_rdoc: true
65
53
  homepage: http://github.com/ono/resque-cleaner
66
54
  licenses: []
67
-
68
55
  post_install_message:
69
- rdoc_options:
56
+ rdoc_options:
70
57
  - --charset=UTF-8
71
- require_paths:
58
+ require_paths:
72
59
  - lib
73
- required_ruby_version: !ruby/object:Gem::Requirement
60
+ required_ruby_version: !ruby/object:Gem::Requirement
74
61
  none: false
75
- requirements:
76
- - - ">="
77
- - !ruby/object:Gem::Version
78
- hash: 3
79
- segments:
80
- - 0
81
- version: "0"
82
- required_rubygems_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ required_rubygems_version: !ruby/object:Gem::Requirement
83
67
  none: false
84
- requirements:
85
- - - ">="
86
- - !ruby/object:Gem::Version
87
- hash: 3
88
- segments:
89
- - 0
90
- version: "0"
68
+ requirements:
69
+ - - ! '>='
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
91
72
  requirements: []
92
-
93
73
  rubyforge_project:
94
- rubygems_version: 1.3.7
74
+ rubygems_version: 1.8.11
95
75
  signing_key:
96
76
  specification_version: 3
97
77
  summary: Resque plugin cleaning up failed jobs.
98
78
  test_files: []
99
-