Merge pull request #16116 from RoadieHQ/keep-sync-alive

keep event stream alive even if its taking a while
This commit is contained in:
Morgan Bentell
2023-02-13 11:52:13 +01:00
committed by GitHub
3 changed files with 21 additions and 1 deletions
@@ -32,6 +32,7 @@ import { DocsBuilder, shouldCheckForUpdate } from '../DocsBuilder';
import { DocsSynchronizer, DocsSynchronizerSyncOpts } from './DocsSynchronizer';
jest.mock('../DocsBuilder');
jest.useFakeTimers();
jest.mock('node-fetch', () => ({
__esModule: true,
@@ -130,6 +131,8 @@ describe('DocsSynchronizer', () => {
const logger = MockedDocsBuilder.mock.calls[0][0].logger;
jest.advanceTimersByTime(10001);
logger.info('Some more log');
return true;
@@ -144,13 +147,19 @@ describe('DocsSynchronizer', () => {
generators,
});
expect(mockResponseHandler.log).toHaveBeenCalledTimes(3);
expect(mockResponseHandler.log).toHaveBeenCalledTimes(4);
expect(mockResponseHandler.log).toHaveBeenCalledWith('Some log');
expect(mockResponseHandler.log).toHaveBeenCalledWith('Another log');
expect(mockResponseHandler.log).toHaveBeenCalledWith(
expect.stringMatching(/info.*Some more log/),
);
expect(mockResponseHandler.log).toHaveBeenCalledWith(
expect.stringMatching(
/info.*The docs building process is taking a little bit longer to process this entity. Please bear with us/,
),
);
expect(mockResponseHandler.finish).toHaveBeenCalledWith({
updated: true,
});
@@ -128,7 +128,13 @@ export class DocsSynchronizer {
cache: this.cache,
});
const interval = setInterval(() => {
taskLogger.info(
'The docs building process is taking a little bit longer to process this entity. Please bear with us.',
);
}, 10000);
const updated = await this.buildLimiter(() => docsBuilder.build());
clearInterval(interval);
if (!updated) {
finish({ updated: false });