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.
data/lib/delayed_job_extras.rb
CHANGED
@@ -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
|
-
|
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.
|
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.
|
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-
|
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: []
|