delayed_job_extras 0.1.3 → 0.1.5

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.
Files changed (2) hide show
  1. data/lib/delayed_job_extras/worker.rb +25 -1
  2. metadata +3 -3
@@ -1,6 +1,16 @@
1
1
  module Delayed
2
2
  class Worker
3
3
 
4
+ PRIORITY_LEVELS = {:immediate => 10000, :high => 1000, :medium => 500, :normal => 0, :low => -100, :who_cares => -1000}
5
+
6
+ def priority=(x)
7
+ @priority = x
8
+ end
9
+
10
+ def priority
11
+ return @priority ||= 0
12
+ end
13
+
4
14
  if Object.const_defined?(:HoptoadNotifier)
5
15
  include HoptoadNotifier::Catcher
6
16
  else
@@ -15,9 +25,23 @@ module Delayed
15
25
  def logger
16
26
  RAILS_DEFAULT_LOGGER
17
27
  end
28
+
29
+ def enqueue(options = {})
30
+ options = {:priority => self.priority}.merge(options)
31
+ Delayed::Job.enqueue(self, options)
32
+ end
18
33
 
19
34
  class << self
20
35
 
36
+ def priority(level = 0)
37
+ define_method('priority') do
38
+ if level.is_a?(Symbol)
39
+ level = Delayed::Worker::PRIORITY_LEVELS[level] ||= 0
40
+ end
41
+ return @priority ||= level
42
+ end
43
+ end
44
+
21
45
  # VideoWorker.encode(1) # => Delayed::Job.enqueue(VideoWorker.new(:encode, 1))
22
46
  def method_missing(sym, *args)
23
47
  self.enqueue(sym, *args)
@@ -25,7 +49,7 @@ module Delayed
25
49
 
26
50
  # VideoWorker.enqueue(1) # => Delayed::Job.enqueue(VideoWorker.new(1))
27
51
  def enqueue(*args)
28
- Delayed::Job.enqueue(self.new(*args))
52
+ self.new(*args).enqueue
29
53
  end
30
54
 
31
55
  def perform(&block)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: delayed_job_extras
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - markbates
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-30 00:00:00 -04:00
12
+ date: 2009-09-07 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -56,7 +56,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
56
56
  requirements: []
57
57
 
58
58
  rubyforge_project: magrathea
59
- rubygems_version: 1.3.4
59
+ rubygems_version: 1.3.5
60
60
  signing_key:
61
61
  specification_version: 3
62
62
  summary: delayed_job_extras