resque-job-tracking 0.0.1 → 0.0.2
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/resque/plugins/job_tracking.rb +50 -34
- data/lib/resque/plugins/job_tracking/version.rb +1 -1
- metadata +47 -76
@@ -29,50 +29,66 @@ module Resque
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def before_enqueue_job_tracking(meta_id, *jobargs)
|
32
|
-
if
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
32
|
+
if meta_id &&
|
33
|
+
self.respond_to?(:track) &&
|
34
|
+
meta = get_meta(meta_id)
|
35
|
+
then
|
36
|
+
enqueue_with_job_tracking(meta, meta_id, *jobargs)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def around_perform_job_tracking(meta_id, *jobargs, &block)
|
41
|
+
if meta_id &&
|
42
|
+
self.respond_to?(:track) &&
|
37
43
|
meta = get_meta(meta_id)
|
38
|
-
|
39
|
-
meta
|
44
|
+
then
|
45
|
+
perform_with_job_tracking(meta, meta_id, *jobargs, &block)
|
46
|
+
else
|
47
|
+
yield
|
40
48
|
end
|
41
49
|
end
|
42
50
|
|
43
|
-
|
44
|
-
|
45
|
-
|
51
|
+
private
|
52
|
+
|
53
|
+
def enqueue_with_job_tracking(meta, meta_id, *jobargs)
|
54
|
+
identifiers = track(*jobargs)
|
55
|
+
identifiers.each do |ident|
|
56
|
+
Resque.redis.sadd("#{ident}:pending", meta_id)
|
57
|
+
end
|
58
|
+
meta["job_args"] = jobargs
|
59
|
+
meta.save
|
60
|
+
end
|
61
|
+
|
62
|
+
def perform_with_job_tracking(meta, meta_id, *jobargs, &block)
|
63
|
+
identifiers = track(*jobargs)
|
64
|
+
identifiers.each do |ident|
|
65
|
+
Resque.redis.srem("#{ident}:pending", meta_id)
|
66
|
+
Resque.redis.sadd("#{ident}:running", meta_id)
|
67
|
+
end
|
68
|
+
begin
|
69
|
+
to_return = yield
|
70
|
+
meta = get_meta(meta_id)
|
71
|
+
meta.expire_in = expire_normal_meta_in
|
72
|
+
meta.save
|
73
|
+
to_return
|
74
|
+
rescue => e
|
46
75
|
identifiers.each do |ident|
|
47
|
-
Resque.redis.
|
48
|
-
Resque.redis.sadd("#{ident}:running", meta_id)
|
76
|
+
Resque.redis.sadd("#{ident}:failed", meta_id)
|
49
77
|
end
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
end
|
60
|
-
meta = get_meta(meta_id)
|
61
|
-
meta.expire_in = expire_failures_meta_in
|
62
|
-
meta['exception_message'] = e.message
|
63
|
-
meta['exception_backtrace'] = e.backtrace
|
64
|
-
meta.save
|
65
|
-
raise e
|
66
|
-
ensure
|
67
|
-
identifiers.each do |ident|
|
68
|
-
Resque.redis.srem("#{ident}:running", meta_id)
|
69
|
-
end
|
78
|
+
meta = get_meta(meta_id)
|
79
|
+
meta.expire_in = expire_failures_meta_in
|
80
|
+
meta['exception_message'] = e.message
|
81
|
+
meta['exception_backtrace'] = e.backtrace
|
82
|
+
meta.save
|
83
|
+
raise e
|
84
|
+
ensure
|
85
|
+
identifiers.each do |ident|
|
86
|
+
Resque.redis.srem("#{ident}:running", meta_id)
|
70
87
|
end
|
71
|
-
else
|
72
|
-
yield
|
73
88
|
end
|
74
89
|
end
|
75
90
|
|
91
|
+
|
76
92
|
end
|
77
93
|
end
|
78
94
|
end
|
metadata
CHANGED
@@ -1,78 +1,57 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: resque-job-tracking
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 1
|
10
|
-
version: 0.0.1
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Jacob Burkhart
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-12-03 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: resque
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70216190504860 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 55
|
29
|
-
segments:
|
30
|
-
- 1
|
31
|
-
- 8
|
32
|
-
- 0
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
33
21
|
version: 1.8.0
|
34
22
|
type: :runtime
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: resque-meta
|
38
23
|
prerelease: false
|
39
|
-
|
24
|
+
version_requirements: *70216190504860
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: resque-meta
|
27
|
+
requirement: &70216190483140 !ruby/object:Gem::Requirement
|
40
28
|
none: false
|
41
|
-
requirements:
|
42
|
-
- -
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
hash: 23
|
45
|
-
segments:
|
46
|
-
- 1
|
47
|
-
- 0
|
48
|
-
- 0
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
49
32
|
version: 1.0.0
|
50
33
|
type: :runtime
|
51
|
-
version_requirements: *id002
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
name: rspec
|
54
34
|
prerelease: false
|
55
|
-
|
35
|
+
version_requirements: *70216190483140
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rspec
|
38
|
+
requirement: &70216190484760 !ruby/object:Gem::Requirement
|
56
39
|
none: false
|
57
|
-
requirements:
|
58
|
-
- -
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
|
61
|
-
segments:
|
62
|
-
- 0
|
63
|
-
version: "0"
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
64
44
|
type: :development
|
65
|
-
|
66
|
-
|
67
|
-
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70216190484760
|
47
|
+
description: A resque plugin for tracking jobs and their state (pending, running,
|
48
|
+
failed) based on some originating entity
|
49
|
+
email:
|
68
50
|
- jacob@engineyard.com
|
69
51
|
executables: []
|
70
|
-
|
71
52
|
extensions: []
|
72
|
-
|
73
53
|
extra_rdoc_files: []
|
74
|
-
|
75
|
-
files:
|
54
|
+
files:
|
76
55
|
- .gitignore
|
77
56
|
- Gemfile
|
78
57
|
- LICENSE
|
@@ -86,40 +65,32 @@ files:
|
|
86
65
|
- spec/spec_helper.rb
|
87
66
|
- spec/support/worker_support.rb
|
88
67
|
- spec/tracking_spec.rb
|
89
|
-
homepage:
|
68
|
+
homepage: ''
|
90
69
|
licenses: []
|
91
|
-
|
92
70
|
post_install_message:
|
93
71
|
rdoc_options: []
|
94
|
-
|
95
|
-
require_paths:
|
72
|
+
require_paths:
|
96
73
|
- lib
|
97
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
74
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
98
75
|
none: false
|
99
|
-
requirements:
|
100
|
-
- -
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
|
103
|
-
|
104
|
-
- 0
|
105
|
-
version: "0"
|
106
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - ! '>='
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0'
|
80
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
81
|
none: false
|
108
|
-
requirements:
|
109
|
-
- -
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
|
112
|
-
segments:
|
113
|
-
- 0
|
114
|
-
version: "0"
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
115
86
|
requirements: []
|
116
|
-
|
117
87
|
rubyforge_project:
|
118
88
|
rubygems_version: 1.8.10
|
119
89
|
signing_key:
|
120
90
|
specification_version: 3
|
121
|
-
summary: A resque plugin for tracking jobs and their state (pending, running, failed)
|
122
|
-
|
91
|
+
summary: A resque plugin for tracking jobs and their state (pending, running, failed)
|
92
|
+
based on some originating entity
|
93
|
+
test_files:
|
123
94
|
- spec/basic_spec.rb
|
124
95
|
- spec/spec_helper.rb
|
125
96
|
- spec/support/worker_support.rb
|