resque-throttle 0.2.19 → 0.3.0
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/README.markdown +1 -1
- data/Rakefile +1 -2
- data/VERSION +1 -1
- data/lib/resque/resque.rb +9 -2
- data/resque-throttle.gemspec +23 -31
- data/test/resque/resque_test.rb +7 -3
- metadata +69 -60
- data/.gitignore +0 -22
data/README.markdown
CHANGED
@@ -58,7 +58,7 @@ Scott J. Tamosunas :: tamosunas@gmail.com :: @scotttam
|
|
58
58
|
|
59
59
|
Copyright
|
60
60
|
---------
|
61
|
-
Copyright (c) 2010
|
61
|
+
Copyright (c) 2010 Scott J. Tamosunas. See LICENSE for details.
|
62
62
|
|
63
63
|
[0]: http://github.com/defunkt/resque
|
64
64
|
[1]: http://help.github.com/forking/
|
data/Rakefile
CHANGED
@@ -13,7 +13,6 @@ begin
|
|
13
13
|
gem.add_dependency "resque", ">=1.6.0"
|
14
14
|
gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
|
15
15
|
gem.add_development_dependency "mocha", ">=0.9.8"
|
16
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
17
16
|
end
|
18
17
|
Jeweler::GemcutterTasks.new
|
19
18
|
rescue LoadError
|
@@ -44,7 +43,7 @@ task :test => :check_dependencies
|
|
44
43
|
|
45
44
|
task :default => :test
|
46
45
|
|
47
|
-
require '
|
46
|
+
require 'rdoc/task'
|
48
47
|
Rake::RDocTask.new do |rdoc|
|
49
48
|
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
50
49
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
data/lib/resque/resque.rb
CHANGED
@@ -3,7 +3,6 @@ require "resque/throttle"
|
|
3
3
|
module Resque
|
4
4
|
extend self
|
5
5
|
|
6
|
-
# Raised when trying to create a job that is throttled
|
7
6
|
class ThrottledError < RuntimeError; end
|
8
7
|
|
9
8
|
def enqueue_with_throttle(klass, *args)
|
@@ -20,7 +19,7 @@ module Resque
|
|
20
19
|
def should_throttle?(klass, *args)
|
21
20
|
return false if !throttle_job?(klass) || klass.disabled
|
22
21
|
return true if key_found?(klass, *args)
|
23
|
-
|
22
|
+
set(klass.key(*args), klass.can_run_every)
|
24
23
|
return false
|
25
24
|
end
|
26
25
|
|
@@ -31,4 +30,12 @@ module Resque
|
|
31
30
|
def throttle_job?(klass)
|
32
31
|
klass.ancestors.include?(Resque::ThrottledJob)
|
33
32
|
end
|
33
|
+
|
34
|
+
def set(key, can_run_every)
|
35
|
+
if redis.respond_to?(:setex)
|
36
|
+
redis.setex(key, can_run_every, true)
|
37
|
+
else
|
38
|
+
redis.set(key, true, can_run_every)
|
39
|
+
end
|
40
|
+
end
|
34
41
|
end
|
data/resque-throttle.gemspec
CHANGED
@@ -1,53 +1,45 @@
|
|
1
1
|
# Generated by jeweler
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.
|
7
|
+
s.name = "resque-throttle"
|
8
|
+
s.version = "0.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Scott J. Tamosunas"]
|
12
|
-
s.date =
|
13
|
-
s.description =
|
14
|
-
s.email =
|
12
|
+
s.date = "2012-04-02"
|
13
|
+
s.description = "resque-throttle is an extension to the resque queue system that restricts the frequency in which certain jobs are run. Add more description here."
|
14
|
+
s.email = "tamosunas@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE",
|
17
|
-
|
17
|
+
"README.markdown"
|
18
18
|
]
|
19
19
|
s.files = [
|
20
20
|
".document",
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
"resque-throttle.gemspec",
|
31
|
-
"test/resque/resque_test.rb",
|
32
|
-
"test/resque/throttled_job_test.rb",
|
33
|
-
"test/test_helper.rb"
|
34
|
-
]
|
35
|
-
s.homepage = %q{http://github.com/scotttam/resque-throttle}
|
36
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
37
|
-
s.require_paths = ["lib"]
|
38
|
-
s.rubygems_version = %q{1.3.5}
|
39
|
-
s.summary = %q{resque-throttle is an extension to the resque queue system that restricts the frequency in which certain jobs are run.}
|
40
|
-
s.test_files = [
|
21
|
+
"LICENSE",
|
22
|
+
"README.markdown",
|
23
|
+
"Rakefile",
|
24
|
+
"VERSION",
|
25
|
+
"lib/resque-throttle.rb",
|
26
|
+
"lib/resque/resque.rb",
|
27
|
+
"lib/resque/throttle.rb",
|
28
|
+
"lib/resque/throttled_job.rb",
|
29
|
+
"resque-throttle.gemspec",
|
41
30
|
"test/resque/resque_test.rb",
|
42
|
-
|
43
|
-
|
31
|
+
"test/resque/throttled_job_test.rb",
|
32
|
+
"test/test_helper.rb"
|
44
33
|
]
|
34
|
+
s.homepage = "http://github.com/scotttam/resque-throttle"
|
35
|
+
s.require_paths = ["lib"]
|
36
|
+
s.rubygems_version = "1.8.21"
|
37
|
+
s.summary = "resque-throttle is an extension to the resque queue system that restricts the frequency in which certain jobs are run."
|
45
38
|
|
46
39
|
if s.respond_to? :specification_version then
|
47
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
48
40
|
s.specification_version = 3
|
49
41
|
|
50
|
-
if Gem::Version.new(Gem::
|
42
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
51
43
|
s.add_runtime_dependency(%q<resque>, [">= 1.6.0"])
|
52
44
|
s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
53
45
|
s.add_development_dependency(%q<mocha>, [">= 0.9.8"])
|
data/test/resque/resque_test.rb
CHANGED
@@ -4,16 +4,16 @@ class ResqueTest < Test::Unit::TestCase
|
|
4
4
|
|
5
5
|
context "Resque" do
|
6
6
|
setup do
|
7
|
-
|
7
|
+
flush_all
|
8
8
|
assert_nil Resque.redis.get(OneHourThrottledJob.key)
|
9
9
|
@bogus_args = "bogus_arg"
|
10
10
|
end
|
11
11
|
|
12
12
|
context "#enqueue" do
|
13
13
|
should "add a throttled job key to the set with the proper TTL (Expire)" do
|
14
|
-
Resque.expects(:enqueue_without_throttle).returns(true)
|
14
|
+
Resque.expects(:enqueue_without_throttle).returns(true)
|
15
15
|
assert Resque.enqueue(IdentifierThrottledJob, @bogus_args)
|
16
|
-
assert Resque.redis.keys('*').include?("
|
16
|
+
assert Resque.redis.keys('*').include?("IdentifierThrottledJob:my_bogus_arg")
|
17
17
|
assert_equal 3600, Resque.redis.ttl(IdentifierThrottledJob.key(@bogus_args))
|
18
18
|
end
|
19
19
|
|
@@ -30,4 +30,8 @@ class ResqueTest < Test::Unit::TestCase
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
33
|
+
|
34
|
+
def flush_all
|
35
|
+
Resque.redis.respond_to?(:flushall) ? Resque.redis.flushall : Resque.redis.flush_all
|
36
|
+
end
|
33
37
|
end
|
metadata
CHANGED
@@ -1,59 +1,74 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: resque-throttle
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
|
-
authors:
|
7
|
+
authors:
|
7
8
|
- Scott J. Tamosunas
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
dependencies:
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-04-02 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: resque
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.6.0
|
17
22
|
type: :runtime
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
23
29
|
version: 1.6.0
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
30
|
+
- !ruby/object:Gem::Dependency
|
26
31
|
name: thoughtbot-shoulda
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
27
38
|
type: :development
|
28
|
-
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
- !ruby/object:Gem::Dependency
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
36
47
|
name: mocha
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.9.8
|
37
54
|
type: :development
|
38
|
-
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
40
|
-
|
41
|
-
|
42
|
-
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
43
61
|
version: 0.9.8
|
44
|
-
|
45
|
-
|
62
|
+
description: resque-throttle is an extension to the resque queue system that restricts
|
63
|
+
the frequency in which certain jobs are run. Add more description here.
|
46
64
|
email: tamosunas@gmail.com
|
47
65
|
executables: []
|
48
|
-
|
49
66
|
extensions: []
|
50
|
-
|
51
|
-
extra_rdoc_files:
|
67
|
+
extra_rdoc_files:
|
52
68
|
- LICENSE
|
53
69
|
- README.markdown
|
54
|
-
files:
|
70
|
+
files:
|
55
71
|
- .document
|
56
|
-
- .gitignore
|
57
72
|
- LICENSE
|
58
73
|
- README.markdown
|
59
74
|
- Rakefile
|
@@ -66,35 +81,29 @@ files:
|
|
66
81
|
- test/resque/resque_test.rb
|
67
82
|
- test/resque/throttled_job_test.rb
|
68
83
|
- test/test_helper.rb
|
69
|
-
has_rdoc: true
|
70
84
|
homepage: http://github.com/scotttam/resque-throttle
|
71
85
|
licenses: []
|
72
|
-
|
73
86
|
post_install_message:
|
74
|
-
rdoc_options:
|
75
|
-
|
76
|
-
require_paths:
|
87
|
+
rdoc_options: []
|
88
|
+
require_paths:
|
77
89
|
- lib
|
78
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
91
|
+
none: false
|
92
|
+
requirements:
|
93
|
+
- - ! '>='
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
90
102
|
requirements: []
|
91
|
-
|
92
103
|
rubyforge_project:
|
93
|
-
rubygems_version: 1.
|
104
|
+
rubygems_version: 1.8.21
|
94
105
|
signing_key:
|
95
106
|
specification_version: 3
|
96
|
-
summary: resque-throttle is an extension to the resque queue system that restricts
|
97
|
-
|
98
|
-
|
99
|
-
- test/resque/throttled_job_test.rb
|
100
|
-
- test/test_helper.rb
|
107
|
+
summary: resque-throttle is an extension to the resque queue system that restricts
|
108
|
+
the frequency in which certain jobs are run.
|
109
|
+
test_files: []
|