delayed_job_extras 0.1.8 → 0.1.9

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.
@@ -14,6 +14,8 @@ begin
14
14
  rescue Exception => e
15
15
  end
16
16
 
17
+ require 'split_logger'
18
+
17
19
  Dir.glob(File.join(File.dirname(__FILE__), 'delayed_job_extras', '**/*.rb')).each do |f|
18
20
  require File.expand_path(f)
19
21
  end
@@ -2,6 +2,7 @@ module Delayed
2
2
  class PerformableMethod
3
3
 
4
4
  attr_accessor :worker_class_name
5
+ attr_accessor :dj_object
5
6
 
6
7
  def initialize_with_worker_class_name(object, method, args)
7
8
  self.worker_class_name = "#{object.class}__#{method}".underscore
@@ -14,10 +15,15 @@ module Delayed
14
15
  include HoptoadNotifier::Catcher
15
16
 
16
17
  def perform_with_hoptoad
18
+ dj_id = 'unknown'
19
+ dj_id = self.dj_object.id if self.dj_object
17
20
  begin
21
+ Delayed::Worker.logger.info("Starting #{self.class.name}#perform (DJ.id = '#{dj_id}')")
18
22
  perform_without_hoptoad
23
+ Delayed::Worker.logger.info("Completed #{self.class.name}#perform (DJ.id = '#{dj_id}') [SUCCESS]")
19
24
  rescue Exception => e
20
25
  notify_hoptoad(e)
26
+ Delayed::Worker.logger.info("Halted #{self.class.name}#perform (DJ.id = '#{dj_id}') [FAILURE]")
21
27
  raise e
22
28
  end
23
29
  end
@@ -4,6 +4,7 @@ module Delayed
4
4
  PRIORITY_LEVELS = {:immediate => 10000, :high => 1000, :medium => 500, :normal => 0, :low => -100, :who_cares => -1000}
5
5
 
6
6
  attr_accessor :dj_object
7
+ attr_accessor :logger
7
8
 
8
9
  def priority=(x)
9
10
  @priority = x
@@ -34,7 +35,7 @@ module Delayed
34
35
  end
35
36
 
36
37
  def logger
37
- RAILS_DEFAULT_LOGGER
38
+ @logger || Delayed::Worker.logger
38
39
  end
39
40
 
40
41
  def enqueue(priority = self.priority, run_at = self.run_at)
@@ -43,6 +44,16 @@ module Delayed
43
44
 
44
45
  class << self
45
46
 
47
+ @@logger = SplitLogger.new
48
+
49
+ def logger
50
+ @@logger
51
+ end
52
+
53
+ def logger=(logger)
54
+ @@logger = logger
55
+ end
56
+
46
57
  def priority(level = 0)
47
58
  define_method('priority') do
48
59
  if level.is_a?(Symbol)
@@ -64,11 +75,17 @@ module Delayed
64
75
 
65
76
  def perform(&block)
66
77
  define_method(:perform) do
78
+ dj_id = 'unknown'
79
+ dj_id = self.dj_object.id if self.dj_object
67
80
  begin
68
- self.instance_eval(&block)
81
+ self.logger.info("Starting #{self.class.name}#perform (DJ.id = '#{dj_id}')")
82
+ val = self.instance_eval(&block)
83
+ self.logger.info("Completed #{self.class.name}#perform (DJ.id = '#{dj_id}') [SUCCESS]")
84
+ return val
69
85
  rescue Exception => e
70
86
  # send to hoptoad!
71
87
  notify_hoptoad(e)
88
+ self.logger.info("Halted #{self.class.name}#perform (DJ.id = '#{dj_id}') [FAILURE]")
72
89
  raise e
73
90
  end
74
91
  end
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.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - markbates
@@ -9,10 +9,19 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-09-15 00:00:00 -04:00
12
+ date: 2009-09-21 00:00:00 -04:00
13
13
  default_executable:
14
- dependencies: []
15
-
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: markbates-split_logger
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
16
25
  description: Adds support for Hoptoad and is_paranoid to Delayed::Job. Additionally it also adds 'stats' for your workers, and it even includes a base worker that encapsulates a some common functionality.
17
26
  email: ""
18
27
  executables: []