markbates-delayed_job_extras 0.1.3.20090830115807 → 0.1.5.20090907094333

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/delayed_job_extras/worker.rb +25 -1
  2. metadata +2 -2
@@ -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: markbates-delayed_job_extras
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3.20090830115807
4
+ version: 0.1.5.20090907094333
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 -07:00
12
+ date: 2009-09-07 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies: []
15
15