altaire-gateway 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/altaire-gateway.gemspec +1 -1
- data/lib/altaire/gateway.rb +4 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8057e361b93ec728fcf74140e16f68c40c9905cacaaa4b5f8d7608a6349499ae
|
4
|
+
data.tar.gz: 984146c79f613f5e0f2c41c316744cf224a3721421d15c2c3540fb49fd53b17a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ad8702e7da1645fa38b53fdd06899c5c43bb90912d5aae41ce3067ce4d5c45f7840225c880ddb3d5f517e4670d8de2d19eb734f0c7c346be17af742edd5698f
|
7
|
+
data.tar.gz: 975959b8e977005eb2180e2dc2e2b4bf7a75b7c13e828c3998b002b48dd20565e9d1deb70785be2b776bf55d2d1fcaec82cc95ade0c406dc5cac629e535a2f2a
|
data/altaire-gateway.gemspec
CHANGED
data/lib/altaire/gateway.rb
CHANGED
@@ -9,21 +9,23 @@ module Altaire
|
|
9
9
|
@requests = {}
|
10
10
|
NATS.subscribe "meta.cancel" do |msg|
|
11
11
|
@requests[msg.to_i].raise(Interrupt, "Cancelled by gateway")
|
12
|
+
rescue Exception
|
12
13
|
end
|
13
14
|
block.(self)
|
14
15
|
end
|
15
16
|
end
|
16
17
|
|
17
|
-
def self.provide (subject, &block)
|
18
|
+
def self.provide (subject, interruptable: false, &block)
|
18
19
|
NATS.subscribe subject do |msg, reply|
|
19
20
|
msg = JSON.parse(msg)
|
20
|
-
|
21
|
+
thread = Thread.new do
|
21
22
|
NATS.publish reply, { result: block.(msg) }.to_json
|
22
23
|
rescue => e
|
23
24
|
NATS.publish reply, { error: e.message }.to_json
|
24
25
|
ensure
|
25
26
|
@requests.delete(msg["id"])
|
26
27
|
end
|
28
|
+
@requests[msg["id"]] = thread if interruptable
|
27
29
|
end
|
28
30
|
end
|
29
31
|
|