nats-pure 2.0.0.pre.rc2 → 2.0.0

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: d16ee062f4cee20fd50abb3d9f78a2e2aa3c92648717ae4e6906e93255920d89
4
- data.tar.gz: d4fa9ee8eb06ca8379493de124d7c125dd15a929550316c943be9bd2ae8d8743
3
+ metadata.gz: c3aa471703cde005a917e60ee79a8bc0abd87ad12d3548a9ebb8fc0c76aeb9ef
4
+ data.tar.gz: c7f2954dd2b9dbdbb465faa6efd77183a935a0004ee1158ab8adbd03a68e1580
5
5
  SHA512:
6
- metadata.gz: ec7aa2c9dd3ce098d7ebdd083ecabe581ebe22302d5cd452feb4e718bebf2b453c455ad6786a0f9bfb7a34f49e348ba9829184521a7f161fbd9ba96df6f39383
7
- data.tar.gz: 8667b8373d87a4f905723f881991645c48a731bafd98a6a533316857fa6a6e56e0493edb753a4b9b01be62fa52b6a82c2a32269e337f4f82e105f48ed8602100
6
+ metadata.gz: 6dc94ad0a6c22fb5b03c5f87c0727d036e97a6efef0c54b395314ccc56e701e7d8d23912eff51e5dca2adfb84f91102b9291e85a574eb3268d18795883983758
7
+ data.tar.gz: 5ed00644aca202ea00a988d9197bd26fada520761decd055affa572c9979063521f01f0149156e6b14e70c53ca572ded330ed85bdc30eb8452ad480c93730ca5
data/lib/nats/io/js.rb CHANGED
@@ -507,6 +507,8 @@ module NATS
507
507
  case msg.header["Status"]
508
508
  when JS::Status::NoMsgs
509
509
  msg = nil
510
+ when JS::Status::RequestTimeout
511
+ # Skip
510
512
  else
511
513
  raise JS.from_msg(msg)
512
514
  end
@@ -535,7 +537,13 @@ module NATS
535
537
  # Should have received at least a message at this point,
536
538
  # if that is not the case then error already.
537
539
  if JS.is_status_msg(msgs.first)
538
- raise JS.from_msg(msgs.first)
540
+ msg = msgs.first
541
+ case msg.header[JS::Header::Status]
542
+ when JS::Status::RequestTimeout
543
+ raise NATS::Timeout.new("nats: fetch request timeout")
544
+ else
545
+ raise JS.from_msg(msgs.first)
546
+ end
539
547
  end
540
548
  end
541
549
  when batch > 1
@@ -546,7 +554,22 @@ module NATS
546
554
  # Check if there already enough in the pending buffer.
547
555
  synchronize do
548
556
  if batch <= @pending_queue.size
549
- batch.times { msgs << @pending_queue.pop }
557
+ batch.times do
558
+ msg = @pending_queue.pop
559
+
560
+ # Check for a no msgs response status.
561
+ if JS.is_status_msg(msg)
562
+ case msg.header[JS::Header::Status]
563
+ when JS::Status::NoMsgs, JS::Status::RequestTimeout
564
+ # Skip these
565
+ next
566
+ else
567
+ raise JS.from_msg(msg)
568
+ end
569
+ else
570
+ msgs << msg
571
+ end
572
+ end
550
573
 
551
574
  return msgs
552
575
  end
@@ -574,11 +597,13 @@ module NATS
574
597
  next_req.delete(:no_wait)
575
598
 
576
599
  @nc.publish(@jsi.nms, JS.next_req_to_json(next_req), @subject)
600
+ when JS::Status::RequestTimeout
601
+ raise NATS::Timeout.new("nats: fetch request timeout")
577
602
  else
578
603
  raise JS.from_msg(msg)
579
604
  end
580
605
  else
581
- msgs << msg
606
+ msgs << msg unless msg.nil?
582
607
  end
583
608
 
584
609
  # Check if have not received yet a single message.
@@ -607,21 +632,24 @@ module NATS
607
632
  msg = @pending_queue.pop
608
633
 
609
634
  if JS.is_status_msg(msg)
610
- case msg.header["Status"]
635
+ case msg.header[JS::Header::Status]
611
636
  when JS::Status::NoMsgs, JS::Status::RequestTimeout
612
637
  duration = MonotonicTime.since(start_time)
613
638
 
614
- # Do not time out if we received at least some messages.
615
- if msgs.empty? && @pending_queue.empty? and duration > timeout
616
- raise NATS::Timeout.new("nats: fetch timeout")
639
+ if duration > timeout
640
+ # Only received a subset of the messages.
641
+ if !msgs.empty?
642
+ return msgs
643
+ else
644
+ raise NATS::Timeout.new("nats: fetch timeout")
645
+ end
617
646
  end
618
-
619
- # Likely only received a subset of the messages.
620
- return msgs
621
647
  else
622
648
  raise JS.from_msg(msg)
623
649
  end
650
+
624
651
  else
652
+ # Add to the set of messages that will be returned.
625
653
  msgs << msg
626
654
  needed -= 1
627
655
  end
@@ -1,4 +1,4 @@
1
- # Copyright 2016-2021 The NATS Authors
1
+ # Copyright 2016-2022 The NATS Authors
2
2
  # Licensed under the Apache License, Version 2.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
@@ -15,7 +15,7 @@
15
15
  module NATS
16
16
  module IO
17
17
  # VERSION is the version of the client announced on CONNECT to the server.
18
- VERSION = "2.0.0-rc2".freeze
18
+ VERSION = "2.0.0".freeze
19
19
 
20
20
  # LANG is the lang runtime of the client announced on CONNECT to the server.
21
21
  LANG = "#{RUBY_ENGINE}#{RUBY_VERSION}".freeze
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nats-pure
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.pre.rc2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Waldemar Quevedo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-26 00:00:00.000000000 Z
11
+ date: 2022-01-29 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: NATS is an open-source, high-performance, lightweight cloud messaging
14
14
  system.
@@ -44,9 +44,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
44
44
  version: '0'
45
45
  required_rubygems_version: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - ">"
47
+ - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 1.3.1
49
+ version: '0'
50
50
  requirements: []
51
51
  rubygems_version: 3.2.22
52
52
  signing_key: