delayed_job_active_record_threaded 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +4 -1
- data/CHANGELOG.md +4 -0
- data/README.md +11 -11
- data/Rakefile +5 -0
- data/delayed_job_active_record_threaded.gemspec +4 -1
- data/lib/delayed/job.rb +5 -0
- data/test/database.yml +1 -1
- data/test/delayed_job_active_record_threaded_test.rb +1 -0
- metadata +43 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 981142e7ce0bc0a93febb2fd65d0b9d6154a19f0
|
4
|
+
data.tar.gz: 8d8fb58d77e0cb70776512c82ad293565816def5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0c6a4748e4f00dfce80ae4c83bf17ceb9a59feb6a8315987adafcab9dbc8e8573fe79b34ba97bd3d3b936105ed7ad630ecf9cf18ebbfc2c4d2161484ec5b38d9
|
7
|
+
data.tar.gz: 6634d85d67102b7097c73213dce1e42607f8dd7b04592d67c2a843e22765a77aa3af9ded22e82800a790388ea6d7d835ccd75100dbb86c7e19648619245f01cc
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -47,30 +47,30 @@ In order to start the threaded process this gem provides, use the following:
|
|
47
47
|
### Defaults
|
48
48
|
|
49
49
|
$ bundle exec rake delayed_job:start
|
50
|
-
|
50
|
+
or
|
51
51
|
$ bundle exec rake dj:start
|
52
52
|
|
53
53
|
### With Options
|
54
54
|
|
55
|
-
|
55
|
+
The default task processes items belonging to all the queues. This is, most of times, not desirable as tasks with higher priority in a given queue take precedence over tasks in another queue.
|
56
56
|
|
57
|
-
|
58
|
-
|
57
|
+
You can have multiple queues processed simultaneously, each with its own options.
|
58
|
+
In the example below, we assume you have an "ebooks" and an "albums" queues.
|
59
59
|
|
60
|
-
|
60
|
+
The command below will process the queues ebooks and albums simultaneously
|
61
61
|
$ bundle exec rake "dj:start[ebooks&albums]"
|
62
62
|
|
63
63
|
$ bundle exec rake "dj:start[ebooks[workers_number]=16&ebooks[worker_timeout]=60&albums[workers_number]=32&albums[worker_timeout]=120]"
|
64
64
|
|
65
|
-
|
65
|
+
The expression "ebooks[workers_number]=16&ebooks[worker_timeout]=60" is a parsed similarly to a URL's query string and would be converted into the following hash:
|
66
66
|
|
67
|
-
|
67
|
+
{"ebooks"=>{"workers_number"=>"16", "worker_timeout"=>"60"}, "albums"=>{"workers_number"=>"32", "worker_timeout"=>"120"}}
|
68
68
|
|
69
|
-
|
69
|
+
The rake task above will start a process in the background and process two queues, "ebooks" with 16 working threads and times out after 60 seconds and "albums" with 32 working threads and times out after 120 seconds.
|
70
70
|
|
71
|
-
|
72
|
-
|
73
|
-
|
71
|
+
Default options:
|
72
|
+
workers_number: 16
|
73
|
+
worker_timeout: 60
|
74
74
|
|
75
75
|
## Contributing
|
76
76
|
|
data/Rakefile
CHANGED
@@ -5,6 +5,7 @@ require 'active_record'
|
|
5
5
|
require 'active_support'
|
6
6
|
require 'active_support/core_ext'
|
7
7
|
require 'delayed_job'
|
8
|
+
require 'rack/utils'
|
8
9
|
|
9
10
|
Rake::TestTask.new do |t|
|
10
11
|
t.libs << 'test'
|
@@ -88,4 +89,8 @@ task :rollback do
|
|
88
89
|
end
|
89
90
|
|
90
91
|
::ActiveRecord::Base.clear_all_connections!
|
92
|
+
end
|
93
|
+
|
94
|
+
task :default do
|
95
|
+
Rake::Task["test"].invoke
|
91
96
|
end
|
@@ -18,12 +18,15 @@ Gem::Specification.new do |spec|
|
|
18
18
|
|
19
19
|
spec.add_development_dependency "bundler", "~> 1.3"
|
20
20
|
spec.add_development_dependency "minitest", "~> 4.7.3"
|
21
|
+
spec.add_development_dependency "minitest-rails", "~> 0.9.1"
|
21
22
|
spec.add_development_dependency "rails", ['>= 3.0', '< 4.1']
|
23
|
+
spec.add_development_dependency "protected_attributes"
|
22
24
|
spec.add_development_dependency "turn"
|
23
25
|
spec.add_development_dependency "rake"
|
24
26
|
spec.add_development_dependency 'sqlite3-ruby', '>= 1.3.1'
|
27
|
+
spec.add_development_dependency "mysql2"
|
25
28
|
spec.add_dependency 'activerecord', ['>= 3.0', '< 4.1']
|
26
29
|
spec.add_dependency 'delayed_job', ['>= 3.0', '< 4.1']
|
27
30
|
spec.add_dependency 'celluloid', ['>=0.14.1']
|
28
|
-
spec.version = "0.0.
|
31
|
+
spec.version = "0.0.3"
|
29
32
|
end
|
data/lib/delayed/job.rb
CHANGED
data/test/database.yml
CHANGED
@@ -30,6 +30,7 @@ class DelayedJobActiveRecordThreadedTest < ActiveSupport::TestCase #MiniTest::Un
|
|
30
30
|
|
31
31
|
# this is VERY dependent on the database pool size
|
32
32
|
test "should process jobs without crashing" do
|
33
|
+
Celluloid.boot # fixes Celluloid issue "Thread pool is not running"
|
33
34
|
mgr = Delayed::HomeManager.new({ :sleep_time => 1, :workers_number => 25, :queue => QUEUE_NAME })
|
34
35
|
|
35
36
|
puts "Number of jobs in queue is: #{Delayed::Job.count}"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: delayed_job_active_record_threaded
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Abdo Achkar
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 4.7.3
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest-rails
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.9.1
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.9.1
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: rails
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,6 +72,20 @@ dependencies:
|
|
58
72
|
- - <
|
59
73
|
- !ruby/object:Gem::Version
|
60
74
|
version: '4.1'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: protected_attributes
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - '>='
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - '>='
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
61
89
|
- !ruby/object:Gem::Dependency
|
62
90
|
name: turn
|
63
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,6 +128,20 @@ dependencies:
|
|
100
128
|
- - '>='
|
101
129
|
- !ruby/object:Gem::Version
|
102
130
|
version: 1.3.1
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: mysql2
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - '>='
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0'
|
138
|
+
type: :development
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - '>='
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0'
|
103
145
|
- !ruby/object:Gem::Dependency
|
104
146
|
name: activerecord
|
105
147
|
requirement: !ruby/object:Gem::Requirement
|