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.
@@ -29,50 +29,66 @@ module Resque
29
29
  end
30
30
 
31
31
  def before_enqueue_job_tracking(meta_id, *jobargs)
32
- if self.respond_to?(:track)
33
- identifiers = track(*jobargs)
34
- identifiers.each do |ident|
35
- Resque.redis.sadd("#{ident}:pending", meta_id)
36
- end
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
- meta["job_args"] = jobargs
39
- meta.save
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
- def around_perform_job_tracking(meta_id, *jobargs)
44
- if self.respond_to?(:track)
45
- identifiers = track(*jobargs)
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.srem("#{ident}:pending", meta_id)
48
- Resque.redis.sadd("#{ident}:running", meta_id)
76
+ Resque.redis.sadd("#{ident}:failed", meta_id)
49
77
  end
50
- begin
51
- to_return = yield
52
- meta = get_meta(meta_id)
53
- meta.expire_in = expire_normal_meta_in
54
- meta.save
55
- to_return
56
- rescue => e
57
- identifiers.each do |ident|
58
- Resque.redis.sadd("#{ident}:failed", meta_id)
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
@@ -1,7 +1,7 @@
1
1
  module Resque
2
2
  module Plugins
3
3
  module JobTracking
4
- VERSION = "0.0.1"
4
+ VERSION = "0.0.2"
5
5
  end
6
6
  end
7
7
  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
- hash: 29
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
- date: 2011-10-13 00:00:00 Z
19
- dependencies:
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
- prerelease: false
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
- requirement: &id002 !ruby/object:Gem::Requirement
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
- requirement: &id003 !ruby/object:Gem::Requirement
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
- hash: 3
61
- segments:
62
- - 0
63
- version: "0"
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
64
44
  type: :development
65
- version_requirements: *id003
66
- description: A resque plugin for tracking jobs and their state (pending, running, failed) based on some originating entity
67
- email:
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
- hash: 3
103
- segments:
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
- hash: 3
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) based on some originating entity
122
- test_files:
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