rabbitek 0.3.0 → 0.3.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 61812d7a27d392ac1fd654f0a181972b716be920d0e8d0579537f685d1d16d42
4
- data.tar.gz: 800b02c54302fcd9c380ebb3effb63e38f28f85f4bfeb6e4731eb11385a92bbc
3
+ metadata.gz: a36ba46180d4c5e3c28d3d212ff2174c49ef00618f6d49c7defd49ec0768d5ae
4
+ data.tar.gz: 25167637efc19c059e73ff8796a19aef890e961ec3c7c891b2b9aba1429d1ef3
5
5
  SHA512:
6
- metadata.gz: 736fd9459b74ab310078f10be4835b600acdec3c8e04093c6d5fa5c90a364a5f1de0f17f6ae4de56cdea56237e63fd0012773732b3a6501970aa55539d826727
7
- data.tar.gz: 6c5d6d0a9b429cc88b0c844c78c3de40e0aacad2d98464c4897cfbecbba2b6b745d4823e2739b2fc995953c9273a32b1434052b0ce63d8929cbe4d767448d1b3
6
+ metadata.gz: 33d4cfcad4e769c15e556b93ba40e9c779aa16ab739a889bd2ec01728b1c84cae25096a559aaaf687875f792ad43789612903c9c6c3b4e222b5a3ba0d801df68
7
+ data.tar.gz: 22b95c1863b7d22d66c4b9f2eb02a18c734450ac09b3aa999dd6b5f316fa40e45f7f52b101e8924a1c2f2a1e2b8601ba6830b99c4948659825983927c393f421
@@ -1,3 +1,25 @@
1
+ ## v0.3.5
2
+
3
+ Bugfix:
4
+ * Fix OpenTracing support when there is no trace_id incoming with job.
5
+
6
+ ## v0.3.4
7
+
8
+ Improvements:
9
+ * Logging improvement
10
+
11
+ ## v0.3.3
12
+
13
+ Improvements:
14
+ * Failure in retry hook will result in additional logging and nacking job with requeue: true
15
+
16
+ ## v0.3.2
17
+
18
+ ## v0.3.1
19
+
20
+ Bugfix:
21
+ * Fix sentry integration while logging messages different than exceptions
22
+
1
23
  ## v0.3.0
2
24
 
3
25
  Improvements:
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rabbitek (0.3.0)
4
+ rabbitek (0.3.4)
5
5
  activesupport (> 3.0)
6
6
  bunny (~> 2.11.0)
7
7
  oj (~> 3.6)
@@ -11,43 +11,43 @@ PATH
11
11
  GEM
12
12
  remote: https://rubygems.org/
13
13
  specs:
14
- actioncable (5.2.2)
15
- actionpack (= 5.2.2)
14
+ actioncable (5.2.4.1)
15
+ actionpack (= 5.2.4.1)
16
16
  nio4r (~> 2.0)
17
17
  websocket-driver (>= 0.6.1)
18
- actionmailer (5.2.2)
19
- actionpack (= 5.2.2)
20
- actionview (= 5.2.2)
21
- activejob (= 5.2.2)
18
+ actionmailer (5.2.4.1)
19
+ actionpack (= 5.2.4.1)
20
+ actionview (= 5.2.4.1)
21
+ activejob (= 5.2.4.1)
22
22
  mail (~> 2.5, >= 2.5.4)
23
23
  rails-dom-testing (~> 2.0)
24
- actionpack (5.2.2)
25
- actionview (= 5.2.2)
26
- activesupport (= 5.2.2)
27
- rack (~> 2.0)
24
+ actionpack (5.2.4.1)
25
+ actionview (= 5.2.4.1)
26
+ activesupport (= 5.2.4.1)
27
+ rack (~> 2.0, >= 2.0.8)
28
28
  rack-test (>= 0.6.3)
29
29
  rails-dom-testing (~> 2.0)
30
30
  rails-html-sanitizer (~> 1.0, >= 1.0.2)
31
- actionview (5.2.2)
32
- activesupport (= 5.2.2)
31
+ actionview (5.2.4.1)
32
+ activesupport (= 5.2.4.1)
33
33
  builder (~> 3.1)
34
34
  erubi (~> 1.4)
35
35
  rails-dom-testing (~> 2.0)
36
36
  rails-html-sanitizer (~> 1.0, >= 1.0.3)
37
- activejob (5.2.2)
38
- activesupport (= 5.2.2)
37
+ activejob (5.2.4.1)
38
+ activesupport (= 5.2.4.1)
39
39
  globalid (>= 0.3.6)
40
- activemodel (5.2.2)
41
- activesupport (= 5.2.2)
42
- activerecord (5.2.2)
43
- activemodel (= 5.2.2)
44
- activesupport (= 5.2.2)
40
+ activemodel (5.2.4.1)
41
+ activesupport (= 5.2.4.1)
42
+ activerecord (5.2.4.1)
43
+ activemodel (= 5.2.4.1)
44
+ activesupport (= 5.2.4.1)
45
45
  arel (>= 9.0)
46
- activestorage (5.2.2)
47
- actionpack (= 5.2.2)
48
- activerecord (= 5.2.2)
46
+ activestorage (5.2.4.1)
47
+ actionpack (= 5.2.4.1)
48
+ activerecord (= 5.2.4.1)
49
49
  marcel (~> 0.3.1)
50
- activesupport (5.2.2)
50
+ activesupport (5.2.4.1)
51
51
  concurrent-ruby (~> 1.0, >= 1.0.2)
52
52
  i18n (>= 0.7, < 2)
53
53
  minitest (~> 5.1)
@@ -55,20 +55,20 @@ GEM
55
55
  amq-protocol (2.3.0)
56
56
  arel (9.0.0)
57
57
  ast (2.4.0)
58
- builder (3.2.3)
58
+ builder (3.2.4)
59
59
  bunny (2.11.0)
60
60
  amq-protocol (~> 2.3.0)
61
61
  coderay (1.1.2)
62
- concurrent-ruby (1.1.4)
63
- crass (1.0.4)
62
+ concurrent-ruby (1.1.5)
63
+ crass (1.0.6)
64
64
  diff-lcs (1.3)
65
- erubi (1.8.0)
65
+ erubi (1.9.0)
66
66
  globalid (0.4.2)
67
67
  activesupport (>= 4.2.0)
68
- i18n (1.5.2)
68
+ i18n (1.8.2)
69
69
  concurrent-ruby (~> 1.0)
70
70
  jaro_winkler (1.5.1)
71
- loofah (2.2.3)
71
+ loofah (2.4.0)
72
72
  crass (~> 1.0.2)
73
73
  nokogiri (>= 1.5.9)
74
74
  mail (2.7.1)
@@ -79,11 +79,11 @@ GEM
79
79
  mimemagic (0.3.3)
80
80
  mini_mime (1.0.2)
81
81
  mini_portile2 (2.4.0)
82
- minitest (5.11.3)
83
- nio4r (2.4.0)
84
- nokogiri (1.10.3)
82
+ minitest (5.14.0)
83
+ nio4r (2.5.2)
84
+ nokogiri (1.10.7)
85
85
  mini_portile2 (~> 2.4.0)
86
- oj (3.8.1)
86
+ oj (3.10.1)
87
87
  opentracing (0.5.0)
88
88
  parallel (1.12.1)
89
89
  parser (2.5.1.2)
@@ -92,30 +92,30 @@ GEM
92
92
  pry (0.12.2)
93
93
  coderay (~> 1.1.0)
94
94
  method_source (~> 0.9.0)
95
- rack (2.0.7)
95
+ rack (2.1.1)
96
96
  rack-test (1.1.0)
97
97
  rack (>= 1.0, < 3)
98
- rails (5.2.2)
99
- actioncable (= 5.2.2)
100
- actionmailer (= 5.2.2)
101
- actionpack (= 5.2.2)
102
- actionview (= 5.2.2)
103
- activejob (= 5.2.2)
104
- activemodel (= 5.2.2)
105
- activerecord (= 5.2.2)
106
- activestorage (= 5.2.2)
107
- activesupport (= 5.2.2)
98
+ rails (5.2.4.1)
99
+ actioncable (= 5.2.4.1)
100
+ actionmailer (= 5.2.4.1)
101
+ actionpack (= 5.2.4.1)
102
+ actionview (= 5.2.4.1)
103
+ activejob (= 5.2.4.1)
104
+ activemodel (= 5.2.4.1)
105
+ activerecord (= 5.2.4.1)
106
+ activestorage (= 5.2.4.1)
107
+ activesupport (= 5.2.4.1)
108
108
  bundler (>= 1.3.0)
109
- railties (= 5.2.2)
109
+ railties (= 5.2.4.1)
110
110
  sprockets-rails (>= 2.0.0)
111
111
  rails-dom-testing (2.0.3)
112
112
  activesupport (>= 4.2.0)
113
113
  nokogiri (>= 1.6)
114
- rails-html-sanitizer (1.0.4)
115
- loofah (~> 2.2, >= 2.2.2)
116
- railties (5.2.2)
117
- actionpack (= 5.2.2)
118
- activesupport (= 5.2.2)
114
+ rails-html-sanitizer (1.3.0)
115
+ loofah (~> 2.3)
116
+ railties (5.2.4.1)
117
+ actionpack (= 5.2.4.1)
118
+ activesupport (= 5.2.4.1)
119
119
  method_source
120
120
  rake (>= 0.8.7)
121
121
  thor (>= 0.19.0, < 2.0)
@@ -144,16 +144,16 @@ GEM
144
144
  unicode-display_width (~> 1.0, >= 1.0.1)
145
145
  ruby-progressbar (1.10.0)
146
146
  slop (4.7.0)
147
- sprockets (3.7.2)
147
+ sprockets (4.0.0)
148
148
  concurrent-ruby (~> 1.0)
149
149
  rack (> 1, < 3)
150
150
  sprockets-rails (3.2.1)
151
151
  actionpack (>= 4.0)
152
152
  activesupport (>= 4.0)
153
153
  sprockets (>= 3.0.0)
154
- thor (0.20.3)
154
+ thor (1.0.1)
155
155
  thread_safe (0.3.6)
156
- tzinfo (1.2.5)
156
+ tzinfo (1.2.6)
157
157
  thread_safe (~> 0.1)
158
158
  unicode-display_width (1.4.0)
159
159
  websocket-driver (0.7.1)
@@ -173,4 +173,4 @@ DEPENDENCIES
173
173
  rubocop (~> 0.58.0)
174
174
 
175
175
  BUNDLED WITH
176
- 2.0.1
176
+ 2.0.2
@@ -77,7 +77,8 @@ module Rabbitek
77
77
  end
78
78
 
79
79
  def boot_consumers
80
- (1..configuration[:threads]).each_with_object([]) do |_, arr|
80
+ (1..configuration[:threads]).each_with_object([]) do |i, arr|
81
+ debug "Booting thread ##{i}"
81
82
  arr << Starter.new(Rabbitek.bunny_connection, configuration).start
82
83
  end
83
84
  end
@@ -15,7 +15,7 @@ module Rabbitek
15
15
  def error(msg)
16
16
  log_msg(:error, msg)
17
17
  NewRelic::Agent.notice_error(msg) if Rabbitek.config.enable_newrelic && Object.const_defined?('NewRelic')
18
- Raven.capture_exception(msg) if Rabbitek.config.enable_sentry && Object.const_defined?('Raven')
18
+ raven_capture_error(msg) if Rabbitek.config.enable_sentry && Object.const_defined?('Raven')
19
19
  true
20
20
  end
21
21
 
@@ -46,5 +46,9 @@ module Rabbitek
46
46
  def class_name(msg)
47
47
  msg.is_a?(Hash) && msg[:class_name] ? msg.delete(:class_name) : self.class.name
48
48
  end
49
+
50
+ def raven_capture_error(msg)
51
+ msg.is_a?(Exception) ? Raven.capture_exception(msg) : Raven.capture_message(msg.to_s)
52
+ end
49
53
  end
50
54
  end
@@ -21,6 +21,10 @@ module Rabbitek
21
21
  channel.ack(delivery_info.delivery_tag, multiple)
22
22
  end
23
23
 
24
+ def nack!(delivery_info, multiple = false, requeue = true)
25
+ channel.nack(delivery_info.delivery_tag, multiple, requeue)
26
+ end
27
+
24
28
  def logger
25
29
  Rabbitek.logger
26
30
  end
@@ -8,12 +8,29 @@ module Rabbitek
8
8
  ##
9
9
  # Hook to retry failed jobs
10
10
  class Retry < Rabbitek::ServerHook
11
+ include Loggable
12
+
11
13
  def call(consumer, message)
12
14
  super
13
15
  rescue StandardError
14
- Retryer.call(consumer, message) unless consumer.batch_size
16
+ retry_message(consumer, message) unless consumer.batch_size
15
17
  raise
16
18
  end
19
+
20
+ private
21
+
22
+ def retry_message(consumer, message)
23
+ Retryer.call(consumer, message)
24
+ rescue StandardError => e
25
+ error(
26
+ message: 'Critical error while retrying. Nacking and requeueing message',
27
+ consumer: message.delivery_info.routing_key,
28
+ jid: consumer.jid,
29
+ error: e.to_s
30
+ )
31
+
32
+ consumer.nack!(message.delivery_info)
33
+ end
17
34
  end
18
35
  end
19
36
  end
@@ -55,7 +55,10 @@ module Rabbitek
55
55
  private
56
56
 
57
57
  def server_references(message_properties)
58
- ::OpenTracing::Reference.follows_from(extract(message_properties))
58
+ ctx = extract(message_properties)
59
+ return unless ctx
60
+
61
+ ::OpenTracing::Reference.follows_from(ctx)
59
62
  end
60
63
 
61
64
  def extract(message_properties)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Rabbitek
4
- VERSION = '0.3.0'
4
+ VERSION = '0.3.5'
5
5
  end
@@ -14,9 +14,15 @@ Gem::Specification.new do |spec|
14
14
  spec.description = 'High performance background job processing'
15
15
  spec.homepage = 'http://boostcom.no'
16
16
 
17
+ spec.license = 'MIT'
18
+
19
+ spec.metadata['source_code_uri'] = 'https://github.com/Boostcom/rabbitek'
20
+ spec.metadata['changelog_uri'] = 'https://github.com/Boostcom/rabbitek/blob/master/CHANGELOG.md'
21
+ spec.metadata['bug_tracker_uri'] = 'https://github.com/Boostcom/rabbitek/issues'
22
+
17
23
  # Specify which files should be added to the gem when it is released.
18
24
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
19
- spec.files = Dir.chdir(File.expand_path(__dir__)) do
25
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
20
26
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
21
27
  end
22
28
  spec.bindir = 'exe'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rabbitek
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Boostcom
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-07-25 00:00:00.000000000 Z
11
+ date: 2020-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -215,8 +215,12 @@ files:
215
215
  - lib/rabbitek/version.rb
216
216
  - rabbitek.gemspec
217
217
  homepage: http://boostcom.no
218
- licenses: []
219
- metadata: {}
218
+ licenses:
219
+ - MIT
220
+ metadata:
221
+ source_code_uri: https://github.com/Boostcom/rabbitek
222
+ changelog_uri: https://github.com/Boostcom/rabbitek/blob/master/CHANGELOG.md
223
+ bug_tracker_uri: https://github.com/Boostcom/rabbitek/issues
220
224
  post_install_message:
221
225
  rdoc_options: []
222
226
  require_paths: