fleck 2.2.2 → 2.2.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0d362b6a20a242296ef0697d57c31503067df64d05b3cee439f58449a7dbe732
4
- data.tar.gz: 76f4a6b22cdfdff8a9826702073eae8866751e4c5446c1d7fdd1aaecd6341655
3
+ metadata.gz: 12549351b1fbd3d7cc3aac011b2949ed7c75d45cc00627ebce98ba87e5ffc3fd
4
+ data.tar.gz: d1c254ae75c7510c6d0436a4b10610e0002478d4405c5a80034583f5b04a8b4f
5
5
  SHA512:
6
- metadata.gz: 794a481e65666fa6ac3be6bd7014d0a20a54819849f2be83402950778de70d24728d3bd283a1fb71332504acb501fe7323e315dbcf9f20f4fe8c229e74120611
7
- data.tar.gz: 42c5b8f0dd478e595d47bde2250a5d01d4b81414ad9670288a1098bb6f7168b71949a8401e848b3f6d2e4d163d23babb70259695ccaa7314fad962b9084a0b1f
6
+ metadata.gz: 3b94e6339c1aa8151c94d473eac81c918d67e2da6c805d20725a62f044bccc41c6456dd34c3e0fa16c6559c66d208196f9ae7423ed527ad891f953edccd1f6cf
7
+ data.tar.gz: 531c4ef36f289ab36dc796f24ec26a81de57bab049a9d4349372226416bcdb45b5e856d85ac528abbdf1e422351d1bbcddee24359065d61e72379fbf2975a122
data/lib/fleck/client.rb CHANGED
@@ -3,7 +3,21 @@ module Fleck
3
3
  class Client
4
4
  include Fleck::Loggable
5
5
 
6
- attr_reader :local_ip, :remote_ip
6
+ @instances = ThreadSafe::Array.new
7
+
8
+ def self.<<(new_instance)
9
+ @instances << new_instance
10
+ end
11
+
12
+ def self.remove_instance(instance)
13
+ @instances.delete(instance)
14
+ end
15
+
16
+ def self.terminate_all
17
+ @instances.map(&:terminate)
18
+ end
19
+
20
+ attr_reader :local_ip, :remote_ip, :terminated
7
21
 
8
22
  def initialize(connection, queue_name = "", exchange_type: :direct, exchange_name: "", multiple_responses: false, concurrency: 1)
9
23
  @connection = connection
@@ -29,9 +43,11 @@ module Fleck
29
43
 
30
44
  logger.debug("Client initialized!")
31
45
 
32
- at_exit do
33
- terminate
34
- end
46
+ Fleck::Client << self
47
+
48
+ # at_exit do
49
+ # terminate
50
+ # end
35
51
  end
36
52
 
37
53
  def request(action: nil, version: nil, headers: {}, params: {}, async: @multiple_responses || false, timeout: @default_timeout, queue: @queue_name, rmq_options: {}, &block)
@@ -73,7 +89,8 @@ module Fleck
73
89
  def terminate
74
90
  @terminated = true
75
91
  logger.info "Unsubscribing from #{@reply_queue.name}"
76
- @subscriptions.map(&:cancel) # stop receiving new messages
92
+ # @subscriptions.map(&:cancel) # stop receiving new messages
93
+ @channel&.close unless @channel&.closed?
77
94
  logger.info "Canceling pending requests"
78
95
  # cancel pending requests
79
96
  while item = @requests.shift do
@@ -83,6 +100,8 @@ module Fleck
83
100
  logger.error e.inspect + "\n" + e.backtrace.join("\n")
84
101
  end
85
102
  end
103
+
104
+ Fleck::Client.remove_instance(self)
86
105
  end
87
106
 
88
107
 
@@ -120,5 +139,9 @@ module Fleck
120
139
  end
121
140
  end
122
141
 
123
- require "fleck/client/request"
124
- require "fleck/client/response"
142
+ at_exit do
143
+ Fleck::Client.terminate_all
144
+ end
145
+
146
+ require 'fleck/client/request'
147
+ require 'fleck/client/response'
data/lib/fleck/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Open `Fleck` module to set `VERSION` constant.
4
4
  module Fleck
5
- VERSION = '2.2.2'
5
+ VERSION = '2.2.3'
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fleck
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.2
4
+ version: 2.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Groza Sergiu
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-10-13 00:00:00.000000000 Z
11
+ date: 2023-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler