istox 0.1.156.1 → 0.1.156.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- istox (0.1.156)
4
+ istox (0.1.156.2)
5
5
  amazing_print
6
6
  awesome_print
7
7
  binding_of_caller
@@ -276,6 +276,10 @@ module Istox
276
276
  end
277
277
  options_dup.merge!(persistent: persistent)
278
278
  options_dup.merge!(mandatory: mandatory)
279
+
280
+ options_dup[:headers] = {} if options[:headers].nil?
281
+ options_dup[:headers][:sender] = Thread.current.object_id
282
+
279
283
  # message.merge!(locale: I18n.locale)
280
284
 
281
285
  publisher_interceptors.each do |interceptor|
@@ -174,8 +174,8 @@ module Istox
174
174
  # when an unroutable message is returned, the BasicReturn is fired first and then an ack is sent, firing the BasicAck second.
175
175
  # So if the current status is unroutable then we need to make sure that we don't overwrite that status with Success (ack).
176
176
  ex.on_return do |return_info, properties, content|
177
- return_info = return_info.to_hash
178
- properties = properties.to_hash
177
+ return_info = return_info.to_hash.deep_symbolize_keys
178
+ properties = properties.to_hash.deep_symbolize_keys
179
179
  log.debug "Got a returned message info: #{return_info}"
180
180
  log.debug "Got a returned message properties: #{properties}"
181
181
  log.debug "Got a returned message content: #{content}"
@@ -186,9 +186,14 @@ module Istox
186
186
  ::Istox::BunnyBoot.update_tracker_incr_retry(key)
187
187
  end
188
188
  =end
189
- options = properties.clone
190
- options[:routing_key] = return_info[:routing_key]
191
- republish(ex, options, content)
189
+ if properties[:headers] && properties[:headers][:sender]
190
+ @error = Hash.new if @error.nil?
191
+ tid = properties[:headers][:sender]
192
+ @error[tid] = Hash.new if @error[Thread.current.object_id].nil?
193
+ @error[tid][:return_info] = return_info
194
+ @error[tid][:properties] = properties
195
+ @error[tid][:content] = content
196
+ end
192
197
  end
193
198
 
194
199
  exchanges[id] = ex
@@ -247,7 +252,12 @@ module Istox
247
252
  log.debug("Message confirm success: remove message for #{channel_id}")
248
253
  # ::Istox::BunnyBoot.del_tracker_on_channel channel_id
249
254
  # republish(ex, options, message)
250
- true
255
+ if @error.nil? || @error[Thread.current.object_id].nil?
256
+ true
257
+ else
258
+ @error[Thread.current.object_id] = nil
259
+ republish(ex,options,message)
260
+ end
251
261
  else
252
262
  ex.channel.nacked_set.each do |n|
253
263
  log.debug("Publish Error: UNACK delivery tag is #{n}, republish message")
@@ -1,3 +1,3 @@
1
1
  module Istox
2
- VERSION = '0.1.156.1'.freeze
2
+ VERSION = '0.1.156.2'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: istox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.156.1
4
+ version: 0.1.156.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Siong Leng
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-07-09 00:00:00.000000000 Z
11
+ date: 2020-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: amazing_print
@@ -524,7 +524,7 @@ files:
524
524
  homepage: http://www.abc.com
525
525
  licenses: []
526
526
  metadata: {}
527
- post_install_message:
527
+ post_install_message:
528
528
  rdoc_options: []
529
529
  require_paths:
530
530
  - lib
@@ -539,8 +539,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
539
539
  - !ruby/object:Gem::Version
540
540
  version: '0'
541
541
  requirements: []
542
- rubygems_version: 3.0.6
543
- signing_key:
542
+ rubygems_version: 3.0.8
543
+ signing_key:
544
544
  specification_version: 4
545
545
  summary: istox backend shared gem
546
546
  test_files: []