Fix live events on exit bug
This should ensure we capture live events on exit correctly. Test Plan: - clear your dev logs on your canvas - start canvas, make some live events calls - stop canvas, grep your dev logs for live events output - should not see anything that is an error Change-Id: I5faf89eb1b3d288287978680195a3fe3c0c35eb5 Reviewed-on: https://gerrit.instructure.com/212483 Tested-by: Jenkins Reviewed-by: Weston Dransfield <wdransfield@instructure.com> QA-Review: Weston Dransfield <wdransfield@instructure.com> Product-Review: Marc Phillips <mphillips@instructure.com>
This commit is contained in:
parent
ee111998d2
commit
1fb0fcf51a
|
@ -95,7 +95,7 @@ module LiveEvents
|
|||
begin
|
||||
# r will be nil on first pass
|
||||
records = [r].compact
|
||||
total_bytes = r&.fetch(:total_bytes) || 0
|
||||
total_bytes = (r.is_a?(Hash) && r[:total_bytes]) || 0
|
||||
while @queue.size > 0 && total_bytes < MAX_BYTE_THRESHOLD
|
||||
r = @queue.pop
|
||||
break if r == :stop
|
||||
|
|
|
@ -20,7 +20,7 @@ require 'spec_helper'
|
|||
|
||||
describe LiveEvents::AsyncWorker do
|
||||
let(:put_records_return) { [] }
|
||||
let(:stream_client) { double(stream_name: stream_name) }
|
||||
let(:stream_client) { double(stream_name: stream_name, put_records: OpenStruct.new(records: [], error_code: nil, error_message: nil)) }
|
||||
let(:stream_name) { 'stream_name_x' }
|
||||
let(:event_name) { 'event_name' }
|
||||
let(:event) do
|
||||
|
@ -139,6 +139,7 @@ describe LiveEvents::AsyncWorker do
|
|||
it "should drain the queue" do
|
||||
@worker.push(event, partition_key)
|
||||
expect(@worker).to receive(:at_exit).and_yield
|
||||
expect(LiveEvents.logger).not_to receive(:error)
|
||||
@worker.start!
|
||||
@worker.send(:at_exit)
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue