esse 0.5.1 → 0.5.3

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: d5aa2b7107d8bc92810414bacbca1c821024e8771b50be5f5c0afb4b66349874
4
- data.tar.gz: 7ea6f01e96dc3e7a260f4b2cc8198f88231920dbd3e96a1d2493df34eb1bfeaa
3
+ metadata.gz: 8a3eef275e851fd5c27b8772578e2bb24c694485a28f1bd7b729d6a32f0b9fae
4
+ data.tar.gz: 7162ec8bd979268a70e456236efd420428e55a5fc902e2b01dfecfb71ea48b1c
5
5
  SHA512:
6
- metadata.gz: bce16d5dd68a36e0f75215994a96746982d84529fddd0f667660ca644cf8ca3c89c79211db91499161323c025528a48e2b371bddf743a4e19de4a95988121196
7
- data.tar.gz: e87a03b8fc0c10fcbbfb7945483c740af2958a2991a1ea5330503f41ca8390988110dbddce59a62cb61987cf020b9f24bb4a02c3770d5dc2bed56bf124163226
6
+ metadata.gz: a2f30bbec5a7030637c189e4bb40b7a5c360541d8b840a226fe4529f837dc565db30a7d34816c7f55faff09fd41dba04649b9ffb16aa2734ec74df3e7077791a
7
+ data.tar.gz: 1b31caae16fe725266bad10e30301d453cd70eb45d3fa9f58de30fa6eb1e266b60f9808bfd82b73f9733dbfa9f105bdbc9dbe3716e5b7472827585aa7a65fb2e
@@ -61,12 +61,15 @@ module Esse
61
61
 
62
62
  raise e unless last_retry_per_document
63
63
  requests = requests_per_document
64
+ ids = document_ids
65
+ id_info = ids.any? ? " (document IDs: #{ids.join(', ')})" : ''
64
66
  Esse.logger.warn <<~MSG
65
- Request entity too large after balancing, retrying one document per request as a last resort.
67
+ Request entity too large after balancing, retrying one document per request as a last resort#{id_info}.
66
68
  If a single document still exceeds the bulk size, the error will be raised.
67
69
  MSG
68
70
  retry
69
- rescue Esse::Transport::BadGatewayError,
71
+ rescue Faraday::ConnectionFailed,
72
+ Esse::Transport::BadGatewayError,
70
73
  Esse::Transport::ServiceUnavailableError,
71
74
  Esse::Transport::GatewayTimeoutError,
72
75
  Esse::Transport::TooManyRequestsError => e
@@ -92,9 +95,11 @@ module Esse
92
95
 
93
96
  def requests_in_small_chunks(chunk_size: 1)
94
97
  arr = build_per_document_requests(chunk_size: chunk_size)
98
+ ids = document_ids
99
+ id_info = ids.any? ? " (document IDs: #{ids.join(', ')})" : ''
95
100
  Esse.logger.warn <<~MSG
96
- Retrying the last request in small chunks of #{chunk_size} documents.
97
- This is a last resort to avoid timeout errors, consider increasing the bulk size or reducing the batch size.
101
+ Timeout error, retrying one document per request as a last resort#{id_info}.
102
+ Consider increasing the bulk size or reducing the batch size.
98
103
  MSG
99
104
  arr
100
105
  end
@@ -103,6 +108,10 @@ module Esse
103
108
  build_per_document_requests(chunk_size: 1)
104
109
  end
105
110
 
111
+ def document_ids
112
+ (@create + @index + @update + @delete).filter_map { |op| op.values.first[:_id] }
113
+ end
114
+
106
115
  def build_per_document_requests(chunk_size: 1)
107
116
  arr = []
108
117
  @create.each_slice(chunk_size) { |slice| arr << Import::RequestBodyAsJson.new.tap { |r| r.create = slice } }
data/lib/esse/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Esse
4
- VERSION = '0.5.1'
4
+ VERSION = '0.5.3'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: esse
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marcos G. Zimmermann
8
8
  autorequire:
9
9
  bindir: exec
10
10
  cert_chain: []
11
- date: 2026-05-16 00:00:00.000000000 Z
11
+ date: 2026-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multi_json