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
|
begin
|
||||||
# r will be nil on first pass
|
# r will be nil on first pass
|
||||||
records = [r].compact
|
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
|
while @queue.size > 0 && total_bytes < MAX_BYTE_THRESHOLD
|
||||||
r = @queue.pop
|
r = @queue.pop
|
||||||
break if r == :stop
|
break if r == :stop
|
||||||
|
|
|
@ -20,7 +20,7 @@ require 'spec_helper'
|
||||||
|
|
||||||
describe LiveEvents::AsyncWorker do
|
describe LiveEvents::AsyncWorker do
|
||||||
let(:put_records_return) { [] }
|
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(:stream_name) { 'stream_name_x' }
|
||||||
let(:event_name) { 'event_name' }
|
let(:event_name) { 'event_name' }
|
||||||
let(:event) do
|
let(:event) do
|
||||||
|
@ -139,6 +139,7 @@ describe LiveEvents::AsyncWorker do
|
||||||
it "should drain the queue" do
|
it "should drain the queue" do
|
||||||
@worker.push(event, partition_key)
|
@worker.push(event, partition_key)
|
||||||
expect(@worker).to receive(:at_exit).and_yield
|
expect(@worker).to receive(:at_exit).and_yield
|
||||||
|
expect(LiveEvents.logger).not_to receive(:error)
|
||||||
@worker.start!
|
@worker.start!
|
||||||
@worker.send(:at_exit)
|
@worker.send(:at_exit)
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue