delayed_job 2.0.6 → 2.0.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.
@@ -0,0 +1,22 @@
1
+ class DelayedJobGenerator < Rails::Generator::Base
2
+ default_options :skip_migration => false
3
+
4
+ def manifest
5
+ record do |m|
6
+ m.template 'script', 'script/delayed_job', :chmod => 0755
7
+ if !options[:skip_migration] && defined?(ActiveRecord)
8
+ m.migration_template "migration.rb", 'db/migrate',
9
+ :migration_file_name => "create_delayed_jobs"
10
+ end
11
+ end
12
+ end
13
+
14
+ protected
15
+
16
+ def add_options!(opt)
17
+ opt.separator ''
18
+ opt.separator 'Options:'
19
+ opt.on("--skip-migration", "Don't generate a migration") { |v| options[:skip_migration] = v }
20
+ end
21
+
22
+ end
@@ -0,0 +1,21 @@
1
+ class CreateDelayedJobs < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :delayed_jobs, :force => true do |table|
4
+ table.integer :priority, :default => 0 # Allows some jobs to jump to the front of the queue
5
+ table.integer :attempts, :default => 0 # Provides for retries, but still fail eventually.
6
+ table.text :handler # YAML-encoded string of the object that will do work
7
+ table.text :last_error # reason for last failure (See Note below)
8
+ table.datetime :run_at # When to run. Could be Time.zone.now for immediately, or sometime in the future.
9
+ table.datetime :locked_at # Set when a client is working on this object
10
+ table.datetime :failed_at # Set when all retries have failed (actually, by default, the record is deleted instead)
11
+ table.string :locked_by # Who is working on this object (if locked)
12
+ table.timestamps
13
+ end
14
+
15
+ add_index :delayed_jobs, [:priority, :run_at], :name => 'delayed_jobs_priority'
16
+ end
17
+
18
+ def self.down
19
+ drop_table :delayed_jobs
20
+ end
21
+ end
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
4
+ require 'delayed/command'
5
+ Delayed::Command.new(ARGV).daemonize
data/rails/init.rb ADDED
@@ -0,0 +1,5 @@
1
+ require 'delayed_job'
2
+
3
+ config.after_initialize do
4
+ Delayed::Worker.guess_backend
5
+ end
@@ -69,7 +69,7 @@ describe Delayed::Backend::MongoMapper::Job do
69
69
 
70
70
  describe "before_fork" do
71
71
  after do
72
- MongoMapper.connection.connect_to_master
72
+ MongoMapper.connection.connect
73
73
  end
74
74
 
75
75
  it "should disconnect" do
data/tasks/jobs.rake ADDED
@@ -0,0 +1 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'delayed', 'tasks'))
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: delayed_job
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ hash: 1
5
+ prerelease:
5
6
  segments:
6
7
  - 2
7
8
  - 0
8
- - 6
9
- version: 2.0.6
9
+ - 7
10
+ version: 2.0.7
10
11
  platform: ruby
11
12
  authors:
12
13
  - Chris Gaffney
@@ -16,180 +17,212 @@ autorequire:
16
17
  bindir: bin
17
18
  cert_chain: []
18
19
 
19
- date: 2011-01-20 00:00:00 -07:00
20
+ date: 2011-02-10 00:00:00 -05:00
20
21
  default_executable:
21
22
  dependencies:
22
23
  - !ruby/object:Gem::Dependency
24
+ prerelease: false
25
+ type: :runtime
23
26
  name: daemons
24
- requirement: &id001 !ruby/object:Gem::Requirement
27
+ version_requirements: &id001 !ruby/object:Gem::Requirement
25
28
  none: false
26
29
  requirements:
27
- - - ">="
30
+ - - "="
28
31
  - !ruby/object:Gem::Version
32
+ hash: 3
29
33
  segments:
34
+ - 1
30
35
  - 0
31
- version: "0"
32
- type: :runtime
33
- prerelease: false
34
- version_requirements: *id001
36
+ - 10
37
+ version: 1.0.10
38
+ requirement: *id001
35
39
  - !ruby/object:Gem::Dependency
36
- name: rspec
37
- requirement: &id002 !ruby/object:Gem::Requirement
40
+ prerelease: false
41
+ type: :runtime
42
+ name: activesupport
43
+ version_requirements: &id002 !ruby/object:Gem::Requirement
38
44
  none: false
39
45
  requirements:
40
- - - <
46
+ - - ~>
41
47
  - !ruby/object:Gem::Version
48
+ hash: 3
42
49
  segments:
43
50
  - 2
44
51
  - 0
45
52
  version: "2.0"
46
- type: :development
53
+ requirement: *id002
54
+ - !ruby/object:Gem::Dependency
47
55
  prerelease: false
48
- version_requirements: *id002
56
+ type: :development
57
+ name: rspec
58
+ version_requirements: &id003 !ruby/object:Gem::Requirement
59
+ none: false
60
+ requirements:
61
+ - - ~>
62
+ - !ruby/object:Gem::Version
63
+ hash: 15
64
+ segments:
65
+ - 1
66
+ - 0
67
+ version: "1.0"
68
+ requirement: *id003
49
69
  - !ruby/object:Gem::Dependency
70
+ prerelease: false
71
+ type: :development
50
72
  name: rake
51
- requirement: &id003 !ruby/object:Gem::Requirement
73
+ version_requirements: &id004 !ruby/object:Gem::Requirement
52
74
  none: false
53
75
  requirements:
54
76
  - - ">="
55
77
  - !ruby/object:Gem::Version
78
+ hash: 3
56
79
  segments:
57
80
  - 0
58
81
  version: "0"
59
- type: :development
60
- prerelease: false
61
- version_requirements: *id003
82
+ requirement: *id004
62
83
  - !ruby/object:Gem::Dependency
84
+ prerelease: false
85
+ type: :development
63
86
  name: rails
64
- requirement: &id004 !ruby/object:Gem::Requirement
87
+ version_requirements: &id005 !ruby/object:Gem::Requirement
65
88
  none: false
66
89
  requirements:
67
- - - <
90
+ - - ~>
68
91
  - !ruby/object:Gem::Version
92
+ hash: 5
69
93
  segments:
94
+ - 2
70
95
  - 3
71
- - 0
72
- version: "3.0"
73
- type: :development
74
- prerelease: false
75
- version_requirements: *id004
96
+ version: "2.3"
97
+ requirement: *id005
76
98
  - !ruby/object:Gem::Dependency
99
+ prerelease: false
100
+ type: :development
77
101
  name: sqlite3
78
- requirement: &id005 !ruby/object:Gem::Requirement
102
+ version_requirements: &id006 !ruby/object:Gem::Requirement
79
103
  none: false
80
104
  requirements:
81
105
  - - ">="
82
106
  - !ruby/object:Gem::Version
107
+ hash: 3
83
108
  segments:
84
109
  - 0
85
110
  version: "0"
86
- type: :development
87
- prerelease: false
88
- version_requirements: *id005
111
+ requirement: *id006
89
112
  - !ruby/object:Gem::Dependency
113
+ prerelease: false
114
+ type: :development
90
115
  name: mysql
91
- requirement: &id006 !ruby/object:Gem::Requirement
116
+ version_requirements: &id007 !ruby/object:Gem::Requirement
92
117
  none: false
93
118
  requirements:
94
119
  - - ">="
95
120
  - !ruby/object:Gem::Version
121
+ hash: 3
96
122
  segments:
97
123
  - 0
98
124
  version: "0"
99
- type: :development
100
- prerelease: false
101
- version_requirements: *id006
125
+ requirement: *id007
102
126
  - !ruby/object:Gem::Dependency
127
+ prerelease: false
128
+ type: :development
103
129
  name: mongo_mapper
104
- requirement: &id007 !ruby/object:Gem::Requirement
130
+ version_requirements: &id008 !ruby/object:Gem::Requirement
105
131
  none: false
106
132
  requirements:
107
- - - ">="
133
+ - - ~>
108
134
  - !ruby/object:Gem::Version
135
+ hash: 63
109
136
  segments:
110
137
  - 0
111
- version: "0"
112
- type: :development
113
- prerelease: false
114
- version_requirements: *id007
138
+ - 8
139
+ - 0
140
+ version: 0.8.0
141
+ requirement: *id008
115
142
  - !ruby/object:Gem::Dependency
143
+ prerelease: false
144
+ type: :development
116
145
  name: dm-core
117
- requirement: &id008 !ruby/object:Gem::Requirement
146
+ version_requirements: &id009 !ruby/object:Gem::Requirement
118
147
  none: false
119
148
  requirements:
120
149
  - - ">="
121
150
  - !ruby/object:Gem::Version
151
+ hash: 3
122
152
  segments:
123
153
  - 0
124
154
  version: "0"
125
- type: :development
126
- prerelease: false
127
- version_requirements: *id008
155
+ requirement: *id009
128
156
  - !ruby/object:Gem::Dependency
157
+ prerelease: false
158
+ type: :development
129
159
  name: dm-observer
130
- requirement: &id009 !ruby/object:Gem::Requirement
160
+ version_requirements: &id010 !ruby/object:Gem::Requirement
131
161
  none: false
132
162
  requirements:
133
163
  - - ">="
134
164
  - !ruby/object:Gem::Version
165
+ hash: 3
135
166
  segments:
136
167
  - 0
137
168
  version: "0"
138
- type: :development
139
- prerelease: false
140
- version_requirements: *id009
169
+ requirement: *id010
141
170
  - !ruby/object:Gem::Dependency
171
+ prerelease: false
172
+ type: :development
142
173
  name: dm-aggregates
143
- requirement: &id010 !ruby/object:Gem::Requirement
174
+ version_requirements: &id011 !ruby/object:Gem::Requirement
144
175
  none: false
145
176
  requirements:
146
177
  - - ">="
147
178
  - !ruby/object:Gem::Version
179
+ hash: 3
148
180
  segments:
149
181
  - 0
150
182
  version: "0"
151
- type: :development
152
- prerelease: false
153
- version_requirements: *id010
183
+ requirement: *id011
154
184
  - !ruby/object:Gem::Dependency
185
+ prerelease: false
186
+ type: :development
155
187
  name: dm-validations
156
- requirement: &id011 !ruby/object:Gem::Requirement
188
+ version_requirements: &id012 !ruby/object:Gem::Requirement
157
189
  none: false
158
190
  requirements:
159
191
  - - ">="
160
192
  - !ruby/object:Gem::Version
193
+ hash: 3
161
194
  segments:
162
195
  - 0
163
196
  version: "0"
164
- type: :development
165
- prerelease: false
166
- version_requirements: *id011
197
+ requirement: *id012
167
198
  - !ruby/object:Gem::Dependency
199
+ prerelease: false
200
+ type: :development
168
201
  name: do_sqlite3
169
- requirement: &id012 !ruby/object:Gem::Requirement
202
+ version_requirements: &id013 !ruby/object:Gem::Requirement
170
203
  none: false
171
204
  requirements:
172
205
  - - ">="
173
206
  - !ruby/object:Gem::Version
207
+ hash: 3
174
208
  segments:
175
209
  - 0
176
210
  version: "0"
177
- type: :development
178
- prerelease: false
179
- version_requirements: *id012
211
+ requirement: *id013
180
212
  - !ruby/object:Gem::Dependency
213
+ prerelease: false
214
+ type: :development
181
215
  name: database_cleaner
182
- requirement: &id013 !ruby/object:Gem::Requirement
216
+ version_requirements: &id014 !ruby/object:Gem::Requirement
183
217
  none: false
184
218
  requirements:
185
219
  - - ">="
186
220
  - !ruby/object:Gem::Version
221
+ hash: 3
187
222
  segments:
188
223
  - 0
189
224
  version: "0"
190
- type: :development
191
- prerelease: false
192
- version_requirements: *id013
225
+ requirement: *id014
193
226
  description: |-
194
227
  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.
195
228
 
@@ -218,6 +251,10 @@ files:
218
251
  - lib/delayed/tasks.rb
219
252
  - lib/delayed/worker.rb
220
253
  - lib/delayed_job.rb
254
+ - generators/delayed_job/delayed_job_generator.rb
255
+ - generators/delayed_job/templates/migration.rb
256
+ - generators/delayed_job/templates/script
257
+ - rails/init.rb
221
258
  - recipes/delayed_job.rb
222
259
  - spec/backend/active_record_job_spec.rb
223
260
  - spec/backend/data_mapper_job_spec.rb
@@ -233,6 +270,7 @@ files:
233
270
  - spec/spec_helper.rb
234
271
  - spec/story_spec.rb
235
272
  - spec/worker_spec.rb
273
+ - tasks/jobs.rake
236
274
  - MIT-LICENSE
237
275
  - README.textile
238
276
  has_rdoc: true
@@ -252,7 +290,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
252
290
  requirements:
253
291
  - - ">="
254
292
  - !ruby/object:Gem::Version
255
- hash: 3581009540733593497
293
+ hash: 3
256
294
  segments:
257
295
  - 0
258
296
  version: "0"
@@ -261,14 +299,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
261
299
  requirements:
262
300
  - - ">="
263
301
  - !ruby/object:Gem::Version
264
- hash: 3581009540733593497
302
+ hash: 3
265
303
  segments:
266
304
  - 0
267
305
  version: "0"
268
306
  requirements: []
269
307
 
270
308
  rubyforge_project:
271
- rubygems_version: 1.3.7
309
+ rubygems_version: 1.5.0
272
310
  signing_key:
273
311
  specification_version: 3
274
312
  summary: Database-backed asynchronous priority queue system -- Extracted from Shopify