blaxter-delayed_job 2.1.3 → 2.1.4
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/delayed/{job_handler.rb → job_launcher.rb} +19 -6
- data/lib/delayed/worker.rb +1 -0
- data/lib/delayed_job.rb +2 -2
- metadata +5 -5
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.1.
|
1
|
+
2.1.4
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'thread'
|
2
|
+
|
1
3
|
# Handle asynchronously launch of jobs, one per grouped value
|
2
4
|
#
|
3
5
|
# It needs the following method to be defined:
|
@@ -32,6 +34,7 @@ module Delayed
|
|
32
34
|
def initialize_launcher(max_active_jobs=MAX_ACTIVE_JOBS)
|
33
35
|
@max_active_jobs = max_active_jobs
|
34
36
|
@jobs = {}
|
37
|
+
@sem = Mutex.new
|
35
38
|
end
|
36
39
|
|
37
40
|
# Launch the job in a thread and register it. Returns whether the job
|
@@ -84,6 +87,12 @@ module Delayed
|
|
84
87
|
@jobs.size
|
85
88
|
end
|
86
89
|
|
90
|
+
def kill_threads!
|
91
|
+
each_job_in_execution do |job, started_at, thread|
|
92
|
+
puts "Killing #{job.name}"
|
93
|
+
thread.terminate
|
94
|
+
end
|
95
|
+
end
|
87
96
|
# ^ public methods -------------------------------------------------------
|
88
97
|
private
|
89
98
|
# v private methods ------------------------------------------------------
|
@@ -111,15 +120,19 @@ module Delayed
|
|
111
120
|
end
|
112
121
|
|
113
122
|
def unregister_job(job)
|
114
|
-
@
|
123
|
+
@sem.synchronize do
|
124
|
+
@jobs.delete get_object(job)
|
125
|
+
end
|
115
126
|
end
|
116
127
|
|
117
128
|
def register_job(job, thread)
|
118
|
-
@
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
129
|
+
@sem.synchronize do
|
130
|
+
@jobs[get_object(job)] = {
|
131
|
+
:thread => thread,
|
132
|
+
:job => job,
|
133
|
+
:started_at => Time.now
|
134
|
+
}
|
135
|
+
end
|
123
136
|
end
|
124
137
|
|
125
138
|
def get_object(job)
|
data/lib/delayed/worker.rb
CHANGED
data/lib/delayed_job.rb
CHANGED
@@ -3,11 +3,11 @@ autoload :ActiveRecord, 'activerecord'
|
|
3
3
|
require File.dirname(__FILE__) + '/delayed/message_sending'
|
4
4
|
require File.dirname(__FILE__) + '/delayed/performable_method'
|
5
5
|
require File.dirname(__FILE__) + '/delayed/yaml_ext'
|
6
|
-
require File.dirname(__FILE__) + '/delayed/
|
6
|
+
require File.dirname(__FILE__) + '/delayed/job_launcher'
|
7
7
|
require File.dirname(__FILE__) + '/delayed/job'
|
8
8
|
require File.dirname(__FILE__) + '/delayed/worker'
|
9
9
|
|
10
|
-
Object.send(:include, Delayed::MessageSending)
|
10
|
+
Object.send(:include, Delayed::MessageSending)
|
11
11
|
Module.send(:include, Delayed::MessageSending::ClassMethods)
|
12
12
|
|
13
13
|
if defined?(Merb::Plugins)
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blaxter-delayed_job
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 2.1.
|
9
|
+
- 4
|
10
|
+
version: 2.1.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- "Tobias L\xC3\xBCtke"
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-
|
19
|
+
date: 2010-10-19 00:00:00 +02:00
|
20
20
|
default_executable:
|
21
21
|
dependencies: []
|
22
22
|
|
@@ -35,7 +35,7 @@ files:
|
|
35
35
|
- generators/delayed_job/templates/migration.rb
|
36
36
|
- init.rb
|
37
37
|
- lib/delayed/job.rb
|
38
|
-
- lib/delayed/
|
38
|
+
- lib/delayed/job_launcher.rb
|
39
39
|
- lib/delayed/message_sending.rb
|
40
40
|
- lib/delayed/performable_method.rb
|
41
41
|
- lib/delayed/worker.rb
|