delayed_job 2.0.8 → 2.1.0.pre
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 +2 -0
- data/README.textile +14 -58
- data/Rakefile +53 -0
- data/VERSION +1 -0
- data/benchmarks.rb +33 -0
- data/delayed_job.gemspec +125 -0
- data/init.rb +1 -0
- data/lib/delayed/backend/active_record.rb +11 -13
- data/lib/delayed/backend/base.rb +14 -58
- data/lib/delayed/backend/couch_rest.rb +109 -0
- data/lib/delayed/backend/data_mapper.rb +8 -12
- data/lib/delayed/backend/mongo_mapper.rb +8 -12
- data/lib/delayed/command.rb +3 -8
- data/lib/delayed/message_sending.rb +10 -19
- data/lib/delayed/performable_method.rb +5 -48
- data/lib/delayed/railtie.rb +4 -0
- data/lib/delayed/recipes.rb +5 -24
- data/lib/delayed/worker.rb +26 -27
- data/lib/delayed/yaml_ext.rb +40 -0
- data/lib/delayed_job.rb +1 -1
- data/lib/generators/delayed_job/delayed_job_generator.rb +34 -0
- data/lib/generators/delayed_job/templates/migration.rb +21 -0
- data/lib/generators/delayed_job/templates/script +5 -0
- data/spec/autoloaded/clazz.rb +7 -0
- data/spec/autoloaded/struct.rb +7 -0
- data/spec/backend/couch_rest_job_spec.rb +15 -0
- data/spec/backend/mongo_mapper_job_spec.rb +11 -11
- data/spec/backend/shared_backend_spec.rb +41 -109
- data/spec/message_sending_spec.rb +1 -46
- data/spec/performable_method_spec.rb +22 -45
- data/spec/sample_jobs.rb +0 -1
- data/spec/setup/couch_rest.rb +7 -0
- data/spec/spec_helper.rb +6 -3
- data/spec/worker_spec.rb +6 -29
- metadata +174 -260
- data/lib/delayed/deserialization_error.rb +0 -4
- data/spec/delayed_method_spec.rb +0 -46
- data/spec/story_spec.rb +0 -17
@@ -1,53 +1,30 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
class StoryReader
|
4
|
-
def read(story)
|
5
|
-
"Epilog: #{story.tell}"
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
9
3
|
describe Delayed::PerformableMethod do
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
p.object.should == "LOAD;Story;#{story.id}"
|
23
|
-
p.method.should == :tell
|
24
|
-
p.args.should == []
|
25
|
-
p.perform.should == 'Once upon...'
|
26
|
-
end
|
27
|
-
|
28
|
-
it "should allow class methods to be called on ActiveRecord models" do
|
29
|
-
p = Delayed::PerformableMethod.new(Story, :count, [])
|
30
|
-
lambda { p.send(:load, p.object) }.should_not raise_error
|
31
|
-
end
|
32
|
-
|
33
|
-
it "should store arguments as string if they are active record objects" do
|
34
|
-
story = Story.create :text => 'Once upon...'
|
35
|
-
reader = StoryReader.new
|
36
|
-
p = Delayed::PerformableMethod.new(reader, :read, [story])
|
37
|
-
p.class.should == Delayed::PerformableMethod
|
38
|
-
p.method.should == :read
|
39
|
-
p.args.should == ["LOAD;Story;#{story.id}"]
|
40
|
-
p.perform.should == 'Epilog: Once upon...'
|
41
|
-
end
|
42
|
-
|
43
|
-
it "should not raise NoMethodError if target method is private" do
|
44
|
-
clazz = Class.new do
|
45
|
-
def private_method
|
4
|
+
describe "perform" do
|
5
|
+
before do
|
6
|
+
@method = Delayed::PerformableMethod.new("foo", :count, ['o'])
|
7
|
+
end
|
8
|
+
|
9
|
+
context "with the persisted record cannot be found" do
|
10
|
+
before do
|
11
|
+
@method.object = nil
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should be a no-op if object is nil" do
|
15
|
+
lambda { @method.perform }.should_not raise_error
|
46
16
|
end
|
47
|
-
private :private_method
|
48
17
|
end
|
18
|
+
|
19
|
+
it "should call the method on the object" do
|
20
|
+
@method.object.should_receive(:count).with('o')
|
21
|
+
@method.perform
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should raise a ArgumentError if target method doesn't exist" do
|
49
26
|
lambda {
|
50
|
-
Delayed::PerformableMethod.new(
|
51
|
-
}.
|
27
|
+
Delayed::PerformableMethod.new(Object, :method_that_does_not_exist, [])
|
28
|
+
}.should raise_error(NoMethodError)
|
52
29
|
end
|
53
30
|
end
|
data/spec/sample_jobs.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -4,7 +4,7 @@ require 'rubygems'
|
|
4
4
|
require 'spec'
|
5
5
|
require 'logger'
|
6
6
|
|
7
|
-
gem '
|
7
|
+
gem 'activerecord', ENV['RAILS_VERSION'] if ENV['RAILS_VERSION']
|
8
8
|
|
9
9
|
require 'delayed_job'
|
10
10
|
require 'sample_jobs'
|
@@ -20,9 +20,12 @@ Dir.glob("#{File.dirname(__FILE__)}/setup/*.rb") do |backend|
|
|
20
20
|
require "setup/#{backend}"
|
21
21
|
require "backend/#{backend}_job_spec"
|
22
22
|
BACKENDS << backend.to_sym
|
23
|
-
rescue
|
24
|
-
puts "Unable to load #{backend} backend
|
23
|
+
rescue Exception
|
24
|
+
puts "Unable to load #{backend} backend: #{$!}"
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
28
|
Delayed::Worker.backend = BACKENDS.first
|
29
|
+
|
30
|
+
# Add this directory so the ActiveSupport autoloading works
|
31
|
+
ActiveSupport::Dependencies.load_paths << File.dirname(__FILE__)
|
data/spec/worker_spec.rb
CHANGED
@@ -6,14 +6,16 @@ describe Delayed::Worker do
|
|
6
6
|
end
|
7
7
|
|
8
8
|
describe "backend=" do
|
9
|
-
|
9
|
+
before do
|
10
10
|
@clazz = Class.new
|
11
11
|
Delayed::Worker.backend = @clazz
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should set the Delayed::Job constant to the backend" do
|
12
15
|
Delayed::Job.should == @clazz
|
13
16
|
end
|
14
17
|
|
15
18
|
it "should set backend with a symbol" do
|
16
|
-
Delayed::Worker.backend = Class.new
|
17
19
|
Delayed::Worker.backend = :active_record
|
18
20
|
Delayed::Worker.backend.should == Delayed::Backend::ActiveRecord::Job
|
19
21
|
end
|
@@ -51,8 +53,6 @@ describe Delayed::Worker do
|
|
51
53
|
end
|
52
54
|
|
53
55
|
it "should only work_off jobs that are >= min_priority" do
|
54
|
-
SimpleJob.runs.should == 0
|
55
|
-
|
56
56
|
job_create(:priority => -10)
|
57
57
|
job_create(:priority => 0)
|
58
58
|
@worker.work_off
|
@@ -61,8 +61,6 @@ describe Delayed::Worker do
|
|
61
61
|
end
|
62
62
|
|
63
63
|
it "should only work_off jobs that are <= max_priority" do
|
64
|
-
SimpleJob.runs.should == 0
|
65
|
-
|
66
64
|
job_create(:priority => 10)
|
67
65
|
job_create(:priority => 0)
|
68
66
|
|
@@ -104,7 +102,6 @@ describe Delayed::Worker do
|
|
104
102
|
# reset defaults
|
105
103
|
Delayed::Worker.destroy_failed_jobs = true
|
106
104
|
Delayed::Worker.max_attempts = 25
|
107
|
-
Delayed::Job.delete_all
|
108
105
|
|
109
106
|
@job = Delayed::Job.enqueue ErrorJob.new
|
110
107
|
end
|
@@ -121,33 +118,13 @@ describe Delayed::Worker do
|
|
121
118
|
end
|
122
119
|
|
123
120
|
it "should re-schedule jobs after failing" do
|
124
|
-
@worker.
|
121
|
+
@worker.run(@job)
|
125
122
|
@job.reload
|
126
123
|
@job.last_error.should =~ /did not work/
|
127
124
|
@job.last_error.should =~ /sample_jobs.rb:8:in `perform'/
|
128
125
|
@job.attempts.should == 1
|
129
126
|
@job.run_at.should > Delayed::Job.db_time_now - 10.minutes
|
130
127
|
@job.run_at.should < Delayed::Job.db_time_now + 10.minutes
|
131
|
-
@job.locked_at.should be_nil
|
132
|
-
@job.locked_by.should be_nil
|
133
|
-
end
|
134
|
-
|
135
|
-
context "when the job's payload implements #reschedule_at" do
|
136
|
-
before(:each) do
|
137
|
-
@reschedule_at = Time.current + 7.hours
|
138
|
-
@job.payload_object.stub!(:reschedule_at).and_return(@reschedule_at)
|
139
|
-
end
|
140
|
-
|
141
|
-
it 'should invoke the strategy to re-schedule' do
|
142
|
-
@job.payload_object.should_receive(:reschedule_at) do |time, attempts|
|
143
|
-
(Delayed::Job.db_time_now - time).should < 2
|
144
|
-
attempts.should == 1
|
145
|
-
|
146
|
-
Delayed::Job.db_time_now + 5
|
147
|
-
end
|
148
|
-
|
149
|
-
@worker.run(@job)
|
150
|
-
end
|
151
128
|
end
|
152
129
|
end
|
153
130
|
|
@@ -165,7 +142,7 @@ describe Delayed::Worker do
|
|
165
142
|
|
166
143
|
it "should run that hook" do
|
167
144
|
@job.payload_object.should_receive :on_permanent_failure
|
168
|
-
@worker.reschedule(@job)
|
145
|
+
Delayed::Worker.max_attempts.times { @worker.reschedule(@job) }
|
169
146
|
end
|
170
147
|
end
|
171
148
|
|
metadata
CHANGED
@@ -1,339 +1,253 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: delayed_job
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: true
|
5
|
+
segments:
|
6
|
+
- 2
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
- pre
|
10
|
+
version: 2.1.0.pre
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
8
|
-
- Chris Gaffney
|
12
|
+
authors:
|
9
13
|
- Brandon Keepers
|
10
|
-
- Tobias
|
14
|
+
- "Tobias L\xC3\xBCtke"
|
11
15
|
autorequire:
|
12
16
|
bindir: bin
|
13
17
|
cert_chain: []
|
14
|
-
|
15
|
-
|
16
|
-
|
18
|
+
|
19
|
+
date: 2010-05-21 00:00:00 -04:00
|
20
|
+
default_executable:
|
21
|
+
dependencies:
|
22
|
+
- !ruby/object:Gem::Dependency
|
17
23
|
name: daemons
|
18
|
-
requirement: !ruby/object:Gem::Requirement
|
19
|
-
none: false
|
20
|
-
requirements:
|
21
|
-
- - '='
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 1.0.10
|
24
|
-
type: :runtime
|
25
24
|
prerelease: false
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
name: activesupport
|
34
|
-
requirement: !ruby/object:Gem::Requirement
|
35
|
-
none: false
|
36
|
-
requirements:
|
37
|
-
- - ~>
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: '2.0'
|
25
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
version: "0"
|
40
32
|
type: :runtime
|
41
|
-
|
42
|
-
|
43
|
-
none: false
|
44
|
-
requirements:
|
45
|
-
- - ~>
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '2.0'
|
48
|
-
- !ruby/object:Gem::Dependency
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
49
35
|
name: rspec
|
50
|
-
requirement: !ruby/object:Gem::Requirement
|
51
|
-
none: false
|
52
|
-
requirements:
|
53
|
-
- - ~>
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: '1.0'
|
56
|
-
type: :development
|
57
|
-
prerelease: false
|
58
|
-
version_requirements: !ruby/object:Gem::Requirement
|
59
|
-
none: false
|
60
|
-
requirements:
|
61
|
-
- - ~>
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
version: '1.0'
|
64
|
-
- !ruby/object:Gem::Dependency
|
65
|
-
name: rake
|
66
|
-
requirement: !ruby/object:Gem::Requirement
|
67
|
-
none: false
|
68
|
-
requirements:
|
69
|
-
- - '='
|
70
|
-
- !ruby/object:Gem::Version
|
71
|
-
version: 0.8.7
|
72
|
-
type: :development
|
73
36
|
prerelease: false
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
name: rails
|
82
|
-
requirement: !ruby/object:Gem::Requirement
|
83
|
-
none: false
|
84
|
-
requirements:
|
85
|
-
- - ~>
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
version: '2.3'
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 0
|
43
|
+
version: "0"
|
88
44
|
type: :development
|
45
|
+
version_requirements: *id002
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: sqlite3-ruby
|
89
48
|
prerelease: false
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
name: sqlite3
|
98
|
-
requirement: !ruby/object:Gem::Requirement
|
99
|
-
none: false
|
100
|
-
requirements:
|
101
|
-
- - ! '>='
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
49
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
segments:
|
54
|
+
- 0
|
55
|
+
version: "0"
|
104
56
|
type: :development
|
57
|
+
version_requirements: *id003
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: activerecord
|
105
60
|
prerelease: false
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
name: mysql
|
114
|
-
requirement: !ruby/object:Gem::Requirement
|
115
|
-
none: false
|
116
|
-
requirements:
|
117
|
-
- - ! '>='
|
118
|
-
- !ruby/object:Gem::Version
|
119
|
-
version: '0'
|
61
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
62
|
+
requirements:
|
63
|
+
- - ">="
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
segments:
|
66
|
+
- 0
|
67
|
+
version: "0"
|
120
68
|
type: :development
|
121
|
-
|
122
|
-
|
123
|
-
none: false
|
124
|
-
requirements:
|
125
|
-
- - ! '>='
|
126
|
-
- !ruby/object:Gem::Version
|
127
|
-
version: '0'
|
128
|
-
- !ruby/object:Gem::Dependency
|
69
|
+
version_requirements: *id004
|
70
|
+
- !ruby/object:Gem::Dependency
|
129
71
|
name: mongo_mapper
|
130
|
-
requirement: !ruby/object:Gem::Requirement
|
131
|
-
none: false
|
132
|
-
requirements:
|
133
|
-
- - ~>
|
134
|
-
- !ruby/object:Gem::Version
|
135
|
-
version: 0.8.0
|
136
|
-
type: :development
|
137
72
|
prerelease: false
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
name: dm-core
|
146
|
-
requirement: !ruby/object:Gem::Requirement
|
147
|
-
none: false
|
148
|
-
requirements:
|
149
|
-
- - ! '>='
|
150
|
-
- !ruby/object:Gem::Version
|
151
|
-
version: '0'
|
73
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
segments:
|
78
|
+
- 0
|
79
|
+
version: "0"
|
152
80
|
type: :development
|
81
|
+
version_requirements: *id005
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: dm-core
|
153
84
|
prerelease: false
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
name: dm-observer
|
162
|
-
requirement: !ruby/object:Gem::Requirement
|
163
|
-
none: false
|
164
|
-
requirements:
|
165
|
-
- - ! '>='
|
166
|
-
- !ruby/object:Gem::Version
|
167
|
-
version: '0'
|
85
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
segments:
|
90
|
+
- 0
|
91
|
+
version: "0"
|
168
92
|
type: :development
|
93
|
+
version_requirements: *id006
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: dm-observer
|
169
96
|
prerelease: false
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
name: dm-aggregates
|
178
|
-
requirement: !ruby/object:Gem::Requirement
|
179
|
-
none: false
|
180
|
-
requirements:
|
181
|
-
- - ! '>='
|
182
|
-
- !ruby/object:Gem::Version
|
183
|
-
version: '0'
|
97
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - ">="
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
segments:
|
102
|
+
- 0
|
103
|
+
version: "0"
|
184
104
|
type: :development
|
105
|
+
version_requirements: *id007
|
106
|
+
- !ruby/object:Gem::Dependency
|
107
|
+
name: dm-aggregates
|
185
108
|
prerelease: false
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
name: dm-validations
|
194
|
-
requirement: !ruby/object:Gem::Requirement
|
195
|
-
none: false
|
196
|
-
requirements:
|
197
|
-
- - ! '>='
|
198
|
-
- !ruby/object:Gem::Version
|
199
|
-
version: '0'
|
109
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
110
|
+
requirements:
|
111
|
+
- - ">="
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
segments:
|
114
|
+
- 0
|
115
|
+
version: "0"
|
200
116
|
type: :development
|
117
|
+
version_requirements: *id008
|
118
|
+
- !ruby/object:Gem::Dependency
|
119
|
+
name: dm-validations
|
201
120
|
prerelease: false
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
name: do_sqlite3
|
210
|
-
requirement: !ruby/object:Gem::Requirement
|
211
|
-
none: false
|
212
|
-
requirements:
|
213
|
-
- - ! '>='
|
214
|
-
- !ruby/object:Gem::Version
|
215
|
-
version: '0'
|
121
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
segments:
|
126
|
+
- 0
|
127
|
+
version: "0"
|
216
128
|
type: :development
|
129
|
+
version_requirements: *id009
|
130
|
+
- !ruby/object:Gem::Dependency
|
131
|
+
name: do_sqlite3
|
217
132
|
prerelease: false
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
name: database_cleaner
|
226
|
-
requirement: !ruby/object:Gem::Requirement
|
227
|
-
none: false
|
228
|
-
requirements:
|
229
|
-
- - ! '>='
|
230
|
-
- !ruby/object:Gem::Version
|
231
|
-
version: '0'
|
133
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
segments:
|
138
|
+
- 0
|
139
|
+
version: "0"
|
232
140
|
type: :development
|
141
|
+
version_requirements: *id010
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: couchrest
|
233
144
|
prerelease: false
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
- brandon@opensoul.org
|
145
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
146
|
+
requirements:
|
147
|
+
- - ">="
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
segments:
|
150
|
+
- 0
|
151
|
+
version: "0"
|
152
|
+
type: :development
|
153
|
+
version_requirements: *id011
|
154
|
+
description: |-
|
155
|
+
Delayed_job (or DJ) encapsulates the common pattern of asynchronously executing longer tasks in the background. It is a direct extraction from Shopify where the job table is responsible for a multitude of core tasks.
|
156
|
+
|
157
|
+
This gem is collectiveidea's fork (http://github.com/collectiveidea/delayed_job).
|
158
|
+
email: tobi@leetsoft.com
|
249
159
|
executables: []
|
160
|
+
|
250
161
|
extensions: []
|
251
|
-
|
162
|
+
|
163
|
+
extra_rdoc_files:
|
252
164
|
- README.textile
|
253
|
-
files:
|
165
|
+
files:
|
166
|
+
- .gitignore
|
167
|
+
- MIT-LICENSE
|
168
|
+
- README.textile
|
169
|
+
- Rakefile
|
170
|
+
- VERSION
|
171
|
+
- benchmarks.rb
|
254
172
|
- contrib/delayed_job.monitrc
|
255
173
|
- contrib/delayed_job_multiple.monitrc
|
174
|
+
- delayed_job.gemspec
|
175
|
+
- generators/delayed_job/delayed_job_generator.rb
|
176
|
+
- generators/delayed_job/templates/migration.rb
|
177
|
+
- generators/delayed_job/templates/script
|
178
|
+
- init.rb
|
256
179
|
- lib/delayed/backend/active_record.rb
|
257
180
|
- lib/delayed/backend/base.rb
|
181
|
+
- lib/delayed/backend/couch_rest.rb
|
258
182
|
- lib/delayed/backend/data_mapper.rb
|
259
183
|
- lib/delayed/backend/mongo_mapper.rb
|
260
184
|
- lib/delayed/command.rb
|
261
|
-
- lib/delayed/deserialization_error.rb
|
262
185
|
- lib/delayed/message_sending.rb
|
263
186
|
- lib/delayed/performable_method.rb
|
264
187
|
- lib/delayed/railtie.rb
|
265
188
|
- lib/delayed/recipes.rb
|
266
189
|
- lib/delayed/tasks.rb
|
267
190
|
- lib/delayed/worker.rb
|
191
|
+
- lib/delayed/yaml_ext.rb
|
268
192
|
- lib/delayed_job.rb
|
269
|
-
- generators/delayed_job/delayed_job_generator.rb
|
270
|
-
- generators/delayed_job/templates/migration.rb
|
271
|
-
- generators/delayed_job/templates/script
|
193
|
+
- lib/generators/delayed_job/delayed_job_generator.rb
|
194
|
+
- lib/generators/delayed_job/templates/migration.rb
|
195
|
+
- lib/generators/delayed_job/templates/script
|
272
196
|
- rails/init.rb
|
273
197
|
- recipes/delayed_job.rb
|
198
|
+
- spec/autoloaded/clazz.rb
|
199
|
+
- spec/autoloaded/struct.rb
|
274
200
|
- spec/backend/active_record_job_spec.rb
|
201
|
+
- spec/backend/couch_rest_job_spec.rb
|
275
202
|
- spec/backend/data_mapper_job_spec.rb
|
276
203
|
- spec/backend/mongo_mapper_job_spec.rb
|
277
204
|
- spec/backend/shared_backend_spec.rb
|
278
|
-
- spec/delayed_method_spec.rb
|
279
205
|
- spec/message_sending_spec.rb
|
280
206
|
- spec/performable_method_spec.rb
|
281
207
|
- spec/sample_jobs.rb
|
282
208
|
- spec/setup/active_record.rb
|
209
|
+
- spec/setup/couch_rest.rb
|
283
210
|
- spec/setup/data_mapper.rb
|
284
211
|
- spec/setup/mongo_mapper.rb
|
285
212
|
- spec/spec_helper.rb
|
286
|
-
- spec/story_spec.rb
|
287
213
|
- spec/worker_spec.rb
|
288
214
|
- tasks/jobs.rake
|
289
|
-
|
290
|
-
- README.textile
|
215
|
+
has_rdoc: true
|
291
216
|
homepage: http://github.com/collectiveidea/delayed_job
|
292
217
|
licenses: []
|
218
|
+
|
293
219
|
post_install_message:
|
294
|
-
rdoc_options:
|
220
|
+
rdoc_options:
|
295
221
|
- --main
|
296
222
|
- README.textile
|
297
223
|
- --inline-source
|
298
224
|
- --line-numbers
|
299
|
-
require_paths:
|
225
|
+
require_paths:
|
300
226
|
- lib
|
301
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
version: '0'
|
307
|
-
segments:
|
227
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
228
|
+
requirements:
|
229
|
+
- - ">="
|
230
|
+
- !ruby/object:Gem::Version
|
231
|
+
segments:
|
308
232
|
- 0
|
309
|
-
|
310
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
-
|
318
|
-
|
233
|
+
version: "0"
|
234
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
235
|
+
requirements:
|
236
|
+
- - ">"
|
237
|
+
- !ruby/object:Gem::Version
|
238
|
+
segments:
|
239
|
+
- 1
|
240
|
+
- 3
|
241
|
+
- 1
|
242
|
+
version: 1.3.1
|
319
243
|
requirements: []
|
244
|
+
|
320
245
|
rubyforge_project:
|
321
|
-
rubygems_version: 1.
|
246
|
+
rubygems_version: 1.3.6
|
322
247
|
signing_key:
|
323
248
|
specification_version: 3
|
324
249
|
summary: Database-backed asynchronous priority queue system -- Extracted from Shopify
|
325
|
-
test_files:
|
326
|
-
- spec/backend/active_record_job_spec.rb
|
327
|
-
- spec/backend/data_mapper_job_spec.rb
|
328
|
-
- spec/backend/mongo_mapper_job_spec.rb
|
329
|
-
- spec/backend/shared_backend_spec.rb
|
330
|
-
- spec/delayed_method_spec.rb
|
250
|
+
test_files:
|
331
251
|
- spec/message_sending_spec.rb
|
332
252
|
- spec/performable_method_spec.rb
|
333
|
-
- spec/sample_jobs.rb
|
334
|
-
- spec/setup/active_record.rb
|
335
|
-
- spec/setup/data_mapper.rb
|
336
|
-
- spec/setup/mongo_mapper.rb
|
337
|
-
- spec/spec_helper.rb
|
338
|
-
- spec/story_spec.rb
|
339
253
|
- spec/worker_spec.rb
|