delayed_job 2.0.6 → 2.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -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