resque-scheduler 1.9.7 → 1.9.8
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 +1 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +52 -0
- data/HISTORY.md +10 -0
- data/README.markdown +1 -1
- data/Rakefile +2 -45
- data/lib/resque/scheduler.rb +15 -9
- data/lib/resque_scheduler/server/views/scheduler.erb +3 -1
- data/lib/resque_scheduler/version.rb +1 -1
- data/lib/resque_scheduler.rb +11 -0
- data/resque-scheduler.gemspec +23 -77
- data/test/delayed_queue_test.rb +9 -0
- data/test/scheduler_args_test.rb +83 -0
- data/test/scheduler_test.rb +5 -0
- metadata +35 -40
data/.gitignore
CHANGED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
resque-scheduler (1.9.7)
|
|
5
|
+
redis (>= 2.0.1)
|
|
6
|
+
resque (>= 1.8.0)
|
|
7
|
+
rufus-scheduler
|
|
8
|
+
|
|
9
|
+
GEM
|
|
10
|
+
remote: http://rubygems.org/
|
|
11
|
+
specs:
|
|
12
|
+
git (1.2.5)
|
|
13
|
+
jeweler (1.5.1)
|
|
14
|
+
bundler (~> 1.0.0)
|
|
15
|
+
git (>= 1.2.5)
|
|
16
|
+
rake
|
|
17
|
+
json (1.4.6)
|
|
18
|
+
mocha (0.9.9)
|
|
19
|
+
rake
|
|
20
|
+
rack (1.2.1)
|
|
21
|
+
rack-test (0.5.6)
|
|
22
|
+
rack (>= 1.0)
|
|
23
|
+
rake (0.8.7)
|
|
24
|
+
redis (2.1.1)
|
|
25
|
+
redis-namespace (0.8.0)
|
|
26
|
+
redis (< 3.0.0)
|
|
27
|
+
resque (1.10.0)
|
|
28
|
+
json (~> 1.4.6)
|
|
29
|
+
redis-namespace (~> 0.8.0)
|
|
30
|
+
sinatra (>= 0.9.2)
|
|
31
|
+
vegas (~> 0.1.2)
|
|
32
|
+
rufus-scheduler (2.0.7)
|
|
33
|
+
tzinfo
|
|
34
|
+
sinatra (1.1.0)
|
|
35
|
+
rack (~> 1.1)
|
|
36
|
+
tilt (~> 1.1)
|
|
37
|
+
tilt (1.1)
|
|
38
|
+
tzinfo (0.3.23)
|
|
39
|
+
vegas (0.1.8)
|
|
40
|
+
rack (>= 1.0.0)
|
|
41
|
+
|
|
42
|
+
PLATFORMS
|
|
43
|
+
ruby
|
|
44
|
+
|
|
45
|
+
DEPENDENCIES
|
|
46
|
+
jeweler
|
|
47
|
+
mocha
|
|
48
|
+
rack-test
|
|
49
|
+
redis (>= 2.0.1)
|
|
50
|
+
resque (>= 1.8.0)
|
|
51
|
+
resque-scheduler!
|
|
52
|
+
rufus-scheduler
|
data/HISTORY.md
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
## 2.0.0 (???)
|
|
2
|
+
|
|
3
|
+
* Dynamic schedule support (brianjlandau, davidyang)
|
|
4
|
+
* Now depends on redis >=1.3
|
|
5
|
+
|
|
6
|
+
## 1.9.8 (???)
|
|
7
|
+
|
|
8
|
+
* Validates delayed jobs prior to insertion into the delayed queue (bogdan)
|
|
9
|
+
* Rescue exceptions that occur during queuing and log them (dgrijalva)
|
|
10
|
+
|
|
1
11
|
## 1.9.7 (2010-11-09)
|
|
2
12
|
|
|
3
13
|
* Support for rufus-scheduler "every" syntax (fallwith)
|
data/README.markdown
CHANGED
|
@@ -147,7 +147,7 @@ and make it support scheduled job.
|
|
|
147
147
|
Let's pretend we have a JobWithStatus class called FakeLeaderboard
|
|
148
148
|
|
|
149
149
|
class FakeLeaderboard < Resque::JobWithStatus
|
|
150
|
-
def
|
|
150
|
+
def perform
|
|
151
151
|
# do something and keep track of the status
|
|
152
152
|
end
|
|
153
153
|
end
|
data/Rakefile
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
require 'bundler'
|
|
2
|
+
Bundler::GemHelper.install_tasks
|
|
2
3
|
|
|
3
4
|
$LOAD_PATH.unshift 'lib'
|
|
4
5
|
|
|
@@ -10,47 +11,3 @@ task :test do
|
|
|
10
11
|
require File.expand_path(f)
|
|
11
12
|
end
|
|
12
13
|
end
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
desc "Build a gem"
|
|
16
|
-
task :gem => [ :test, :gemspec, :build ]
|
|
17
|
-
|
|
18
|
-
begin
|
|
19
|
-
begin
|
|
20
|
-
require 'jeweler'
|
|
21
|
-
rescue LoadError
|
|
22
|
-
puts "Jeweler not available. Install it with: "
|
|
23
|
-
puts "gem install jeweler"
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
require 'resque_scheduler/version'
|
|
27
|
-
|
|
28
|
-
Jeweler::Tasks.new do |gemspec|
|
|
29
|
-
gemspec.name = "resque-scheduler"
|
|
30
|
-
gemspec.summary = "Light weight job scheduling on top of Resque"
|
|
31
|
-
gemspec.description = %{Light weight job scheduling on top of Resque.
|
|
32
|
-
Adds methods enqueue_at/enqueue_in to schedule jobs in the future.
|
|
33
|
-
Also supports queueing jobs on a fixed, cron-like schedule.}
|
|
34
|
-
gemspec.email = "bvandenbos@gmail.com"
|
|
35
|
-
gemspec.homepage = "http://github.com/bvandenbos/resque-scheduler"
|
|
36
|
-
gemspec.authors = ["Ben VandenBos"]
|
|
37
|
-
gemspec.version = ResqueScheduler::Version
|
|
38
|
-
|
|
39
|
-
gemspec.add_dependency "redis", ">= 2.0.1"
|
|
40
|
-
gemspec.add_dependency "resque", ">= 1.8.0"
|
|
41
|
-
gemspec.add_dependency "rufus-scheduler"
|
|
42
|
-
gemspec.add_development_dependency "jeweler"
|
|
43
|
-
gemspec.add_development_dependency "mocha"
|
|
44
|
-
gemspec.add_development_dependency "rack-test"
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
desc "Push a new version to Gemcutter"
|
|
50
|
-
task :publish => [ :test, :gemspec, :build ] do
|
|
51
|
-
system "git tag v#{ResqueScheduler::Version}"
|
|
52
|
-
system "git push origin v#{ResqueScheduler::Version}"
|
|
53
|
-
system "git push origin master"
|
|
54
|
-
system "gem push pkg/resque-scheduler-#{ResqueScheduler::Version}.gem"
|
|
55
|
-
system "git clean -fd"
|
|
56
|
-
end
|
data/lib/resque/scheduler.rb
CHANGED
|
@@ -103,14 +103,18 @@ module Resque
|
|
|
103
103
|
begin
|
|
104
104
|
handle_shutdown do
|
|
105
105
|
if item = Resque.next_item_for_timestamp(timestamp)
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
106
|
+
begin
|
|
107
|
+
log "queuing #{item['class']} [delayed]"
|
|
108
|
+
queue = item['queue'] || Resque.queue_from_class(constantize(item['class']))
|
|
109
|
+
# Support custom job classes like job with status
|
|
110
|
+
if (job_klass = item['custom_job_class']) && (job_klass != 'Resque::Job')
|
|
111
|
+
# custom job classes not supporting the same API calls must implement the #schedule method
|
|
112
|
+
constantize(job_klass).scheduled(queue, item['class'], *item['args'])
|
|
113
|
+
else
|
|
114
|
+
Resque::Job.create(queue, item['class'], *item['args'])
|
|
115
|
+
end
|
|
116
|
+
rescue
|
|
117
|
+
log! "Failed to enqueue #{klass_name}:\n #{$!}"
|
|
114
118
|
end
|
|
115
119
|
end
|
|
116
120
|
end
|
|
@@ -128,7 +132,7 @@ module Resque
|
|
|
128
132
|
def enqueue_from_config(config)
|
|
129
133
|
args = config['args'] || config[:args]
|
|
130
134
|
klass_name = config['class'] || config[:class]
|
|
131
|
-
params = args.
|
|
135
|
+
params = args.is_a?(Hash) ? [args] : Array(args)
|
|
132
136
|
queue = config['queue'] || config[:queue] || Resque.queue_from_class(constantize(klass_name))
|
|
133
137
|
# Support custom job classes like job with status
|
|
134
138
|
if (job_klass = config['custom_job_class']) && (job_klass != 'Resque::Job')
|
|
@@ -137,6 +141,8 @@ module Resque
|
|
|
137
141
|
else
|
|
138
142
|
Resque::Job.create(queue, klass_name, *params)
|
|
139
143
|
end
|
|
144
|
+
rescue
|
|
145
|
+
log! "Failed to enqueue #{klass_name}:\n #{$!}"
|
|
140
146
|
end
|
|
141
147
|
|
|
142
148
|
def rufus_scheduler
|
|
@@ -29,7 +29,9 @@
|
|
|
29
29
|
<td style="white-space:nowrap"><%= (config['cron'].nil? && !config['every'].nil?) ?
|
|
30
30
|
h('every: ' + config['every']) :
|
|
31
31
|
h('cron: ' + config['cron']) %></td>
|
|
32
|
-
<td><%=
|
|
32
|
+
<td><%= (config['class'].nil? && !config['custom_job_class'].nil?) ?
|
|
33
|
+
h(config['custom_job_class']) :
|
|
34
|
+
h(config['class']) %></td>
|
|
33
35
|
<td><%= h config['queue'] || queue_from_class_name(config['class']) %></td>
|
|
34
36
|
<td><%= h config['args'].inspect %></td>
|
|
35
37
|
</tr>
|
data/lib/resque_scheduler.rb
CHANGED
|
@@ -41,6 +41,7 @@ module ResqueScheduler
|
|
|
41
41
|
# for queueing. Until timestamp is in the past, the job will
|
|
42
42
|
# sit in the schedule list.
|
|
43
43
|
def enqueue_at(timestamp, klass, *args)
|
|
44
|
+
validate_job!(klass)
|
|
44
45
|
delayed_push(timestamp, job_to_hash(klass, args))
|
|
45
46
|
end
|
|
46
47
|
|
|
@@ -150,6 +151,16 @@ module ResqueScheduler
|
|
|
150
151
|
end
|
|
151
152
|
end
|
|
152
153
|
|
|
154
|
+
def validate_job!(klass)
|
|
155
|
+
if klass.to_s.empty?
|
|
156
|
+
raise Resque::NoClassError.new("Jobs must be given a class.")
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
unless queue_from_class(klass)
|
|
160
|
+
raise Resque::NoQueueError.new("Jobs must be placed onto a queue.")
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
|
|
153
164
|
end
|
|
154
165
|
|
|
155
166
|
Resque.extend ResqueScheduler
|
data/resque-scheduler.gemspec
CHANGED
|
@@ -1,83 +1,29 @@
|
|
|
1
|
-
# Generated by jeweler
|
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
|
4
1
|
# -*- encoding: utf-8 -*-
|
|
2
|
+
require File.expand_path("../lib/resque_scheduler/version", __FILE__)
|
|
5
3
|
|
|
6
4
|
Gem::Specification.new do |s|
|
|
7
|
-
s.name
|
|
8
|
-
s.version
|
|
9
|
-
|
|
10
|
-
s.
|
|
11
|
-
s.
|
|
12
|
-
s.
|
|
5
|
+
s.name = "resque-scheduler"
|
|
6
|
+
s.version = ResqueScheduler::Version
|
|
7
|
+
s.platform = Gem::Platform::RUBY
|
|
8
|
+
s.authors = ['Ben VandenBos']
|
|
9
|
+
s.email = ['bvandenbos@gmail.com']
|
|
10
|
+
s.homepage = "http://github.com/bvandenbos/resque-scheduler"
|
|
11
|
+
s.summary = "Light weight job scheduling on top of Resque"
|
|
13
12
|
s.description = %q{Light weight job scheduling on top of Resque.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
s.
|
|
18
|
-
|
|
19
|
-
"README.markdown"
|
|
20
|
-
]
|
|
21
|
-
s.files = [
|
|
22
|
-
".gitignore",
|
|
23
|
-
"HISTORY.md",
|
|
24
|
-
"LICENSE",
|
|
25
|
-
"README.markdown",
|
|
26
|
-
"Rakefile",
|
|
27
|
-
"lib/resque/scheduler.rb",
|
|
28
|
-
"lib/resque_scheduler.rb",
|
|
29
|
-
"lib/resque_scheduler/server.rb",
|
|
30
|
-
"lib/resque_scheduler/server/views/delayed.erb",
|
|
31
|
-
"lib/resque_scheduler/server/views/delayed_timestamp.erb",
|
|
32
|
-
"lib/resque_scheduler/server/views/scheduler.erb",
|
|
33
|
-
"lib/resque_scheduler/tasks.rb",
|
|
34
|
-
"lib/resque_scheduler/version.rb",
|
|
35
|
-
"resque-scheduler.gemspec",
|
|
36
|
-
"tasks/resque_scheduler.rake",
|
|
37
|
-
"test/delayed_queue_test.rb",
|
|
38
|
-
"test/redis-test.conf",
|
|
39
|
-
"test/resque-web_test.rb",
|
|
40
|
-
"test/scheduler_test.rb",
|
|
41
|
-
"test/test_helper.rb"
|
|
42
|
-
]
|
|
43
|
-
s.homepage = %q{http://github.com/bvandenbos/resque-scheduler}
|
|
44
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
|
45
|
-
s.require_paths = ["lib"]
|
|
46
|
-
s.rubygems_version = %q{1.3.7}
|
|
47
|
-
s.summary = %q{Light weight job scheduling on top of Resque}
|
|
48
|
-
s.test_files = [
|
|
49
|
-
"test/delayed_queue_test.rb",
|
|
50
|
-
"test/resque-web_test.rb",
|
|
51
|
-
"test/scheduler_test.rb",
|
|
52
|
-
"test/test_helper.rb"
|
|
53
|
-
]
|
|
54
|
-
|
|
55
|
-
if s.respond_to? :specification_version then
|
|
56
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
|
57
|
-
s.specification_version = 3
|
|
13
|
+
Adds methods enqueue_at/enqueue_in to schedule jobs in the future.
|
|
14
|
+
Also supports queueing jobs on a fixed, cron-like schedule.}
|
|
15
|
+
|
|
16
|
+
s.required_rubygems_version = ">= 1.3.6"
|
|
17
|
+
s.add_development_dependency "bundler", ">= 1.0.0"
|
|
58
18
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
s.add_dependency(%q<rufus-scheduler>, [">= 0"])
|
|
70
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
|
71
|
-
s.add_dependency(%q<mocha>, [">= 0"])
|
|
72
|
-
s.add_dependency(%q<rack-test>, [">= 0"])
|
|
73
|
-
end
|
|
74
|
-
else
|
|
75
|
-
s.add_dependency(%q<redis>, [">= 2.0.1"])
|
|
76
|
-
s.add_dependency(%q<resque>, [">= 1.8.0"])
|
|
77
|
-
s.add_dependency(%q<rufus-scheduler>, [">= 0"])
|
|
78
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
|
79
|
-
s.add_dependency(%q<mocha>, [">= 0"])
|
|
80
|
-
s.add_dependency(%q<rack-test>, [">= 0"])
|
|
81
|
-
end
|
|
19
|
+
s.files = `git ls-files`.split("\n")
|
|
20
|
+
s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
|
|
21
|
+
s.require_path = 'lib'
|
|
22
|
+
|
|
23
|
+
s.add_runtime_dependency(%q<redis>, [">= 2.0.1"])
|
|
24
|
+
s.add_runtime_dependency(%q<resque>, [">= 1.8.0"])
|
|
25
|
+
s.add_runtime_dependency(%q<rufus-scheduler>, [">= 0"])
|
|
26
|
+
s.add_development_dependency(%q<mocha>, [">= 0"])
|
|
27
|
+
s.add_development_dependency(%q<rack-test>, [">= 0"])
|
|
28
|
+
|
|
82
29
|
end
|
|
83
|
-
|
data/test/delayed_queue_test.rb
CHANGED
|
@@ -217,4 +217,13 @@ class Resque::DelayedQueueTest < Test::Unit::TestCase
|
|
|
217
217
|
assert_equal(2, Resque.remove_delayed(SomeIvarJob, "bar"))
|
|
218
218
|
assert_equal(2, Resque.count_all_scheduled_jobs)
|
|
219
219
|
end
|
|
220
|
+
|
|
221
|
+
def test_invalid_job_class
|
|
222
|
+
assert_raise Resque::NoClassError do
|
|
223
|
+
Resque.enqueue_in(10, nil)
|
|
224
|
+
end
|
|
225
|
+
assert_raise Resque::NoQueueError do
|
|
226
|
+
Resque.enqueue_in(10, String) # string serves as invalid Job class
|
|
227
|
+
end
|
|
228
|
+
end
|
|
220
229
|
end
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper'
|
|
2
|
+
|
|
3
|
+
context "scheduling jobs with arguments" do
|
|
4
|
+
setup { Resque::Scheduler.clear_schedule! }
|
|
5
|
+
|
|
6
|
+
test "calls the worker without arguments when 'args' is missing from the config" do
|
|
7
|
+
Resque::Scheduler.enqueue_from_config(YAML.load(<<-YAML))
|
|
8
|
+
class: SomeIvarJob
|
|
9
|
+
YAML
|
|
10
|
+
SomeIvarJob.expects(:perform).once.with()
|
|
11
|
+
Resque.reserve('ivar').perform
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
test "calls the worker without arguments when 'args' is blank in the config" do
|
|
15
|
+
Resque::Scheduler.enqueue_from_config(YAML.load(<<-YAML))
|
|
16
|
+
class: SomeIvarJob
|
|
17
|
+
args:
|
|
18
|
+
YAML
|
|
19
|
+
SomeIvarJob.expects(:perform).once.with()
|
|
20
|
+
Resque.reserve('ivar').perform
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
test "calls the worker with a string when the config lists a string" do
|
|
24
|
+
Resque::Scheduler.enqueue_from_config(YAML.load(<<-YAML))
|
|
25
|
+
class: SomeIvarJob
|
|
26
|
+
args: string
|
|
27
|
+
YAML
|
|
28
|
+
SomeIvarJob.expects(:perform).once.with('string')
|
|
29
|
+
Resque.reserve('ivar').perform
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
test "calls the worker with a Fixnum when the config lists an integer" do
|
|
33
|
+
Resque::Scheduler.enqueue_from_config(YAML.load(<<-YAML))
|
|
34
|
+
class: SomeIvarJob
|
|
35
|
+
args: 1
|
|
36
|
+
YAML
|
|
37
|
+
SomeIvarJob.expects(:perform).once.with(1)
|
|
38
|
+
Resque.reserve('ivar').perform
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
test "calls the worker with multiple arguments when the config lists an array" do
|
|
42
|
+
Resque::Scheduler.enqueue_from_config(YAML.load(<<-YAML))
|
|
43
|
+
class: SomeIvarJob
|
|
44
|
+
args:
|
|
45
|
+
- 1
|
|
46
|
+
- 2
|
|
47
|
+
YAML
|
|
48
|
+
SomeIvarJob.expects(:perform).once.with(1, 2)
|
|
49
|
+
Resque.reserve('ivar').perform
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
test "calls the worker with an array when the config lists a nested array" do
|
|
53
|
+
Resque::Scheduler.enqueue_from_config(YAML.load(<<-YAML))
|
|
54
|
+
class: SomeIvarJob
|
|
55
|
+
args:
|
|
56
|
+
- - 1
|
|
57
|
+
- 2
|
|
58
|
+
YAML
|
|
59
|
+
SomeIvarJob.expects(:perform).once.with([1, 2])
|
|
60
|
+
Resque.reserve('ivar').perform
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
test "calls the worker with a hash when the config lists a hash" do
|
|
64
|
+
Resque::Scheduler.enqueue_from_config(YAML.load(<<-YAML))
|
|
65
|
+
class: SomeIvarJob
|
|
66
|
+
args:
|
|
67
|
+
key: value
|
|
68
|
+
YAML
|
|
69
|
+
SomeIvarJob.expects(:perform).once.with('key' => 'value')
|
|
70
|
+
Resque.reserve('ivar').perform
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
test "calls the worker with a nested hash when the config lists a nested hash" do
|
|
74
|
+
Resque::Scheduler.enqueue_from_config(YAML.load(<<-YAML))
|
|
75
|
+
class: SomeIvarJob
|
|
76
|
+
args:
|
|
77
|
+
first_key:
|
|
78
|
+
second_key: value
|
|
79
|
+
YAML
|
|
80
|
+
SomeIvarJob.expects(:perform).once.with('first_key' => {'second_key' => 'value'})
|
|
81
|
+
Resque.reserve('ivar').perform
|
|
82
|
+
end
|
|
83
|
+
end
|
data/test/scheduler_test.rb
CHANGED
|
@@ -20,6 +20,11 @@ class Resque::SchedulerTest < Test::Unit::TestCase
|
|
|
20
20
|
Resque::Scheduler.enqueue_from_config('every' => '1m', 'class' => 'JamesJob', 'args' => '/tmp', 'queue' => 'james_queue')
|
|
21
21
|
end
|
|
22
22
|
|
|
23
|
+
def test_enqueue_from_config_doesnt_crash_on_exception_when_enqueueing
|
|
24
|
+
Resque::Job.stubs(:create).raises(Resque::NoQueueError, 'test exception').with(:ivar, 'SomeIvarJob', '/tmp')
|
|
25
|
+
Resque::Scheduler.enqueue_from_config('cron' => "* * * * *", 'class' => 'SomeIvarJob', 'args' => "/tmp")
|
|
26
|
+
end
|
|
27
|
+
|
|
23
28
|
def test_enqueue_from_config_puts_stuff_in_the_resque_queue
|
|
24
29
|
Resque::Job.stubs(:create).once.returns(true).with(:ivar, 'SomeIvarJob', '/tmp')
|
|
25
30
|
Resque::Scheduler.enqueue_from_config('cron' => "* * * * *", 'class' => 'SomeIvarJob', 'args' => "/tmp")
|
metadata
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: resque-scheduler
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash: 61
|
|
5
4
|
prerelease: false
|
|
6
5
|
segments:
|
|
7
6
|
- 1
|
|
8
7
|
- 9
|
|
9
|
-
-
|
|
10
|
-
version: 1.9.
|
|
8
|
+
- 8
|
|
9
|
+
version: 1.9.8
|
|
11
10
|
platform: ruby
|
|
12
11
|
authors:
|
|
13
12
|
- Ben VandenBos
|
|
@@ -15,68 +14,66 @@ autorequire:
|
|
|
15
14
|
bindir: bin
|
|
16
15
|
cert_chain: []
|
|
17
16
|
|
|
18
|
-
date:
|
|
17
|
+
date: 2011-01-14 00:00:00 -08:00
|
|
19
18
|
default_executable:
|
|
20
19
|
dependencies:
|
|
21
20
|
- !ruby/object:Gem::Dependency
|
|
22
|
-
name:
|
|
21
|
+
name: bundler
|
|
23
22
|
prerelease: false
|
|
24
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
|
25
24
|
none: false
|
|
26
25
|
requirements:
|
|
27
26
|
- - ">="
|
|
28
27
|
- !ruby/object:Gem::Version
|
|
29
|
-
hash: 13
|
|
30
28
|
segments:
|
|
31
|
-
- 2
|
|
32
|
-
- 0
|
|
33
29
|
- 1
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
- 0
|
|
31
|
+
- 0
|
|
32
|
+
version: 1.0.0
|
|
33
|
+
type: :development
|
|
36
34
|
version_requirements: *id001
|
|
37
35
|
- !ruby/object:Gem::Dependency
|
|
38
|
-
name:
|
|
36
|
+
name: redis
|
|
39
37
|
prerelease: false
|
|
40
38
|
requirement: &id002 !ruby/object:Gem::Requirement
|
|
41
39
|
none: false
|
|
42
40
|
requirements:
|
|
43
41
|
- - ">="
|
|
44
42
|
- !ruby/object:Gem::Version
|
|
45
|
-
hash: 55
|
|
46
43
|
segments:
|
|
47
|
-
-
|
|
48
|
-
- 8
|
|
44
|
+
- 2
|
|
49
45
|
- 0
|
|
50
|
-
|
|
46
|
+
- 1
|
|
47
|
+
version: 2.0.1
|
|
51
48
|
type: :runtime
|
|
52
49
|
version_requirements: *id002
|
|
53
50
|
- !ruby/object:Gem::Dependency
|
|
54
|
-
name:
|
|
51
|
+
name: resque
|
|
55
52
|
prerelease: false
|
|
56
53
|
requirement: &id003 !ruby/object:Gem::Requirement
|
|
57
54
|
none: false
|
|
58
55
|
requirements:
|
|
59
56
|
- - ">="
|
|
60
57
|
- !ruby/object:Gem::Version
|
|
61
|
-
hash: 3
|
|
62
58
|
segments:
|
|
59
|
+
- 1
|
|
60
|
+
- 8
|
|
63
61
|
- 0
|
|
64
|
-
version:
|
|
62
|
+
version: 1.8.0
|
|
65
63
|
type: :runtime
|
|
66
64
|
version_requirements: *id003
|
|
67
65
|
- !ruby/object:Gem::Dependency
|
|
68
|
-
name:
|
|
66
|
+
name: rufus-scheduler
|
|
69
67
|
prerelease: false
|
|
70
68
|
requirement: &id004 !ruby/object:Gem::Requirement
|
|
71
69
|
none: false
|
|
72
70
|
requirements:
|
|
73
71
|
- - ">="
|
|
74
72
|
- !ruby/object:Gem::Version
|
|
75
|
-
hash: 3
|
|
76
73
|
segments:
|
|
77
74
|
- 0
|
|
78
75
|
version: "0"
|
|
79
|
-
type: :
|
|
76
|
+
type: :runtime
|
|
80
77
|
version_requirements: *id004
|
|
81
78
|
- !ruby/object:Gem::Dependency
|
|
82
79
|
name: mocha
|
|
@@ -86,7 +83,6 @@ dependencies:
|
|
|
86
83
|
requirements:
|
|
87
84
|
- - ">="
|
|
88
85
|
- !ruby/object:Gem::Version
|
|
89
|
-
hash: 3
|
|
90
86
|
segments:
|
|
91
87
|
- 0
|
|
92
88
|
version: "0"
|
|
@@ -100,7 +96,6 @@ dependencies:
|
|
|
100
96
|
requirements:
|
|
101
97
|
- - ">="
|
|
102
98
|
- !ruby/object:Gem::Version
|
|
103
|
-
hash: 3
|
|
104
99
|
segments:
|
|
105
100
|
- 0
|
|
106
101
|
version: "0"
|
|
@@ -108,18 +103,20 @@ dependencies:
|
|
|
108
103
|
version_requirements: *id006
|
|
109
104
|
description: |-
|
|
110
105
|
Light weight job scheduling on top of Resque.
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
email:
|
|
106
|
+
Adds methods enqueue_at/enqueue_in to schedule jobs in the future.
|
|
107
|
+
Also supports queueing jobs on a fixed, cron-like schedule.
|
|
108
|
+
email:
|
|
109
|
+
- bvandenbos@gmail.com
|
|
114
110
|
executables: []
|
|
115
111
|
|
|
116
112
|
extensions: []
|
|
117
113
|
|
|
118
|
-
extra_rdoc_files:
|
|
119
|
-
|
|
120
|
-
- README.markdown
|
|
114
|
+
extra_rdoc_files: []
|
|
115
|
+
|
|
121
116
|
files:
|
|
122
117
|
- .gitignore
|
|
118
|
+
- Gemfile
|
|
119
|
+
- Gemfile.lock
|
|
123
120
|
- HISTORY.md
|
|
124
121
|
- LICENSE
|
|
125
122
|
- README.markdown
|
|
@@ -137,6 +134,7 @@ files:
|
|
|
137
134
|
- test/delayed_queue_test.rb
|
|
138
135
|
- test/redis-test.conf
|
|
139
136
|
- test/resque-web_test.rb
|
|
137
|
+
- test/scheduler_args_test.rb
|
|
140
138
|
- test/scheduler_test.rb
|
|
141
139
|
- test/test_helper.rb
|
|
142
140
|
has_rdoc: true
|
|
@@ -144,8 +142,8 @@ homepage: http://github.com/bvandenbos/resque-scheduler
|
|
|
144
142
|
licenses: []
|
|
145
143
|
|
|
146
144
|
post_install_message:
|
|
147
|
-
rdoc_options:
|
|
148
|
-
|
|
145
|
+
rdoc_options: []
|
|
146
|
+
|
|
149
147
|
require_paths:
|
|
150
148
|
- lib
|
|
151
149
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
@@ -153,7 +151,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
153
151
|
requirements:
|
|
154
152
|
- - ">="
|
|
155
153
|
- !ruby/object:Gem::Version
|
|
156
|
-
hash: 3
|
|
157
154
|
segments:
|
|
158
155
|
- 0
|
|
159
156
|
version: "0"
|
|
@@ -162,10 +159,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
162
159
|
requirements:
|
|
163
160
|
- - ">="
|
|
164
161
|
- !ruby/object:Gem::Version
|
|
165
|
-
hash: 3
|
|
166
162
|
segments:
|
|
167
|
-
-
|
|
168
|
-
|
|
163
|
+
- 1
|
|
164
|
+
- 3
|
|
165
|
+
- 6
|
|
166
|
+
version: 1.3.6
|
|
169
167
|
requirements: []
|
|
170
168
|
|
|
171
169
|
rubyforge_project:
|
|
@@ -173,8 +171,5 @@ rubygems_version: 1.3.7
|
|
|
173
171
|
signing_key:
|
|
174
172
|
specification_version: 3
|
|
175
173
|
summary: Light weight job scheduling on top of Resque
|
|
176
|
-
test_files:
|
|
177
|
-
|
|
178
|
-
- test/resque-web_test.rb
|
|
179
|
-
- test/scheduler_test.rb
|
|
180
|
-
- test/test_helper.rb
|
|
174
|
+
test_files: []
|
|
175
|
+
|