resque-throttle 0.2.18 → 0.2.19

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown ADDED
@@ -0,0 +1,66 @@
1
+ resque-throttle
2
+ ===============
3
+
4
+ Resque Throttle is a plugin for the [Resque][0] queueing system
5
+ (http://github.com/defunkt/resque). It adds a ThrottledJob class that will
6
+ limit the amount of times it can be enqueued per class.
7
+
8
+ To use
9
+ ------
10
+ The job you wish to throttle should inherit from the Resque::ThrottledJob class.
11
+
12
+ In your class, add the can_run_every in which the job should be throttled. Example:
13
+
14
+ class MyThrottledJob < Resque::ThrottledJob
15
+ throttle :can_run_every => 24.hours
16
+
17
+ #rest of your class here
18
+ end
19
+
20
+ By default, the key which identifies the job is simply the class name. This "identifier"
21
+ is stored in a redis key with a TTL equal to that of the can_run_every. Thus the
22
+ default behavior is a single Job class inheriting from Resque::ThrottledJob can only
23
+ run every 30 minutes.
24
+
25
+ If you'd like to override that to be more granular, you can do that in the identifier class method
26
+ by returning a string. For example, if you want the job to be limited to once a day per
27
+ account, do something like the following:
28
+
29
+ class MyThrottledJob < Resque::ThrottledJob
30
+ throttle :can_run_every => 24.hours
31
+
32
+ def self.identifier(*args)
33
+ account_id = *args
34
+ "account_id:#{account_id}"
35
+ end
36
+
37
+ #rest of your class here
38
+ end
39
+
40
+ The *args passed to identifier are the same arguments that are passed to perform.
41
+
42
+ When a job is throttled, it will raise a ThrottledError and the job will not be enqueued.
43
+
44
+ Contributing
45
+ ------------
46
+
47
+ Once you've made your commits:
48
+
49
+ 1. [Fork][1] Resque Throttle
50
+ 2. Create a topic branch - `git checkout -b my_branch`
51
+ 3. Push to your branch - `git push origin my_branch`
52
+ 4. Create an [Issue][2] with a link to your branch
53
+ 5. That's it!
54
+
55
+ Author
56
+ ------
57
+ Scott J. Tamosunas :: tamosunas@gmail.com :: @scotttam
58
+
59
+ Copyright
60
+ ---------
61
+ Copyright (c) 2010 Zendesk. See LICENSE for details.
62
+
63
+ [0]: http://github.com/defunkt/resque
64
+ [1]: http://help.github.com/forking/
65
+ [2]: http://github.com/scotttam/resque-throttle/issues
66
+
data/Rakefile CHANGED
@@ -10,7 +10,7 @@ begin
10
10
  gem.email = "tamosunas@gmail.com"
11
11
  gem.homepage = "http://github.com/scotttam/resque-throttle"
12
12
  gem.authors = ["Scott J. Tamosunas"]
13
- gem.add_dependency "scotttam-resque", ">=0.0.5"
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
16
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.18
1
+ 0.2.19
@@ -5,22 +5,22 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{resque-throttle}
8
- s.version = "0.2.18"
8
+ s.version = "0.2.19"
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 = %q{2010-03-08}
12
+ s.date = %q{2010-03-10}
13
13
  s.description = %q{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
14
  s.email = %q{tamosunas@gmail.com}
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE",
17
- "README.rdoc"
17
+ "README.markdown"
18
18
  ]
19
19
  s.files = [
20
20
  ".document",
21
21
  ".gitignore",
22
22
  "LICENSE",
23
- "README.rdoc",
23
+ "README.markdown",
24
24
  "Rakefile",
25
25
  "VERSION",
26
26
  "lib/resque-throttle.rb",
@@ -48,16 +48,16 @@ Gem::Specification.new do |s|
48
48
  s.specification_version = 3
49
49
 
50
50
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
51
- s.add_runtime_dependency(%q<scotttam-resque>, [">= 0.0.5"])
51
+ s.add_runtime_dependency(%q<resque>, [">= 1.6.0"])
52
52
  s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
53
53
  s.add_development_dependency(%q<mocha>, [">= 0.9.8"])
54
54
  else
55
- s.add_dependency(%q<scotttam-resque>, [">= 0.0.5"])
55
+ s.add_dependency(%q<resque>, [">= 1.6.0"])
56
56
  s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
57
57
  s.add_dependency(%q<mocha>, [">= 0.9.8"])
58
58
  end
59
59
  else
60
- s.add_dependency(%q<scotttam-resque>, [">= 0.0.5"])
60
+ s.add_dependency(%q<resque>, [">= 1.6.0"])
61
61
  s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
62
62
  s.add_dependency(%q<mocha>, [">= 0.9.8"])
63
63
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: resque-throttle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.18
4
+ version: 0.2.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott J. Tamosunas
@@ -9,18 +9,18 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-03-08 00:00:00 -08:00
12
+ date: 2010-03-10 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: scotttam-resque
16
+ name: resque
17
17
  type: :runtime
18
18
  version_requirement:
19
19
  version_requirements: !ruby/object:Gem::Requirement
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 0.0.5
23
+ version: 1.6.0
24
24
  version:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: thoughtbot-shoulda
@@ -50,12 +50,12 @@ extensions: []
50
50
 
51
51
  extra_rdoc_files:
52
52
  - LICENSE
53
- - README.rdoc
53
+ - README.markdown
54
54
  files:
55
55
  - .document
56
56
  - .gitignore
57
57
  - LICENSE
58
- - README.rdoc
58
+ - README.markdown
59
59
  - Rakefile
60
60
  - VERSION
61
61
  - lib/resque-throttle.rb
data/README.rdoc DELETED
@@ -1,17 +0,0 @@
1
- = resque-throttle
2
-
3
- Description goes here.
4
-
5
- == Note on Patches/Pull Requests
6
-
7
- * Fork the project.
8
- * Make your feature addition or bug fix.
9
- * Add tests for it. This is important so I don't break it in a
10
- future version unintentionally.
11
- * Commit, do not mess with rakefile, version, or history.
12
- (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
13
- * Send me a pull request. Bonus points for topic branches.
14
-
15
- == Copyright
16
-
17
- Copyright (c) 2010 Zendesk. See LICENSE for details.