resque-job-tracking 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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