work_shaper 0.1.2.5 → 0.1.2.7rc2

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: 3486b765efce170ed99dd19dd25fe0b755e0c109c1f460ca2998f444cdf8557f
4
- data.tar.gz: d9329ef84832dfbc0704a56f39ed82a8a51f17e3ebe93741938f4422cdb47797
3
+ metadata.gz: 227baf03a85cc1e631a5f55ecb5832504501828bea7b87435ac00b6944b44942
4
+ data.tar.gz: '003509444bbd9b6981c16adf4dfb7f8cab44c648715a26e4737aae3ad9bcc4c5'
5
5
  SHA512:
6
- metadata.gz: 046bc8286d04fd48130621813262ea0537b8b68eec80fe6332658d46f09fe3ca4e5640d63f91b131e2f9774e286dbada92968d2e361feccabde139f91230ec41
7
- data.tar.gz: 4851e8636d76ea5d5438f343527117dc6880d1e47a5de07c35d20ee469df474fbd103c5d73850dea6217c1ce3f5174c64acebe4faf2c27d2233aaa9031e7c7d1
6
+ metadata.gz: 926b0af454f94f5336161403278b7e4de3d6ba2399dc8692051ac7d1423750ca8b1a3f7614700cb2baffc5b1e07e420ea7d94c4b5e78b4b2f66d2687b7d8f83b
7
+ data.tar.gz: 6a6b92cf53395c4713d680e8468217633b8f5aead88c145c4b42dd523bad59e3600396f5ee059b43d31eedca6c28013c3ba972d70ff65533b8c2eac56ea527fd
@@ -35,7 +35,7 @@ module WorkShaper
35
35
 
36
36
  @heartbeat = Thread.new do
37
37
  while true
38
- report
38
+ report(detailed: true)
39
39
  sleep heartbeat_period_sec
40
40
  end
41
41
  rescue => e
@@ -134,19 +134,20 @@ module WorkShaper
134
134
  end
135
135
 
136
136
  def offset_ack_unsafe(partition)
137
- completed = @completed_offsets[partition]
138
- received = @received_offsets[partition]
137
+ completed = @completed_offsets[partition].sort
138
+ received = @received_offsets[partition].sort
139
139
 
140
- offset = completed.sort.first
141
- while received.any? && received.sort.first == offset
140
+ offset = completed.first
141
+ while received.any? && received.first == offset
142
142
  # We observed Kafka sending the same message twice, even after
143
143
  # having committed the offset. Here we skip this offset if we
144
144
  # know it has already been committed.
145
145
  last_offset = @last_ack[partition]
146
146
  if last_offset && offset <= last_offset
147
147
  WorkShaper.logger.warn(
148
- { message: 'Received Dupilcate Offset',
149
- offset: "#{partition}:#{offset}"
148
+ { message: 'Received Duplicate Offset',
149
+ offset: "#{partition}:#{offset}",
150
+ last_acked: last_offset,
150
151
  })
151
152
  else
152
153
  result = @ack.call(partition, offset)
@@ -157,10 +158,9 @@ module WorkShaper
157
158
  completed: @completed_offsets[partition].to_a[0..10].join(','),
158
159
  received: @received_offsets[partition].to_a[0..10].join(',')
159
160
  })
160
- else
161
- @last_ack[partition] = offset
162
161
  end
163
162
  end
163
+ @last_ack[partition] = offset
164
164
 
165
165
  @total_acked += 1
166
166
  WorkShaper.logger.debug "@total_acked: #{@total_acked}"
@@ -175,11 +175,7 @@ module WorkShaper
175
175
 
176
176
  def pause_on_overrun
177
177
  overrun = lambda do
178
- completed = @completed_offsets.values.flatten.count
179
- received = @received_offsets.values.flatten.count
180
-
181
178
  @total_enqueued.to_i - @total_acked.to_i > @max_in_queue
182
- received - completed > @max_in_queue
183
179
  end
184
180
 
185
181
  # We have to be careful here to avoid a deadlock. Another thread may be waiting
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WorkShaper
4
- VERSION = "0.1.2.5"
4
+ VERSION = "0.1.2.7rc2"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: work_shaper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2.5
4
+ version: 0.1.2.7rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jerry Fernholz
@@ -62,9 +62,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
62
62
  version: 2.6.0
63
63
  required_rubygems_version: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - ">="
65
+ - - ">"
66
66
  - !ruby/object:Gem::Version
67
- version: '0'
67
+ version: 1.3.1
68
68
  requirements: []
69
69
  rubygems_version: 3.4.10
70
70
  signing_key: