Skip to main content
Version: v1

DeltaScheduler Class

DeltaScheduler is responsible for the scheduling of inbound delta queue in cases where there is more than one op a particular run of the queue. It does not schedule if there is just one op or just one batch in the run. It does the following two things: 1. If the ops have been processed for more than a specific amount of time, it pauses the queue and calls setTimeout to schedule a resume of the queue. This ensures that we don't block the JS thread for a long time processing ops synchronously (for example, when catching up ops right after boot or catching up ops / delayed realizing data stores by summarizer). 2. If we scheduled a particular run of the queue, it logs telemetry for the number of ops processed, the time and number of turns it took to process the ops.

Signature

export declare class DeltaScheduler

Constructors

Constructor Description
(constructor)(deltaManager, logger) Constructs a new instance of the DeltaScheduler class

Static Properties

Property Type Description
processingTime

Methods

Method Return Type Description
batchBegin(message) void
batchEnd(message) void

Constructor Details

(constructor)

Constructs a new instance of the DeltaScheduler class

Signature

constructor(deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>, logger: ITelemetryLogger);

Parameters

Parameter Type Description
deltaManager IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>
logger ITelemetryLogger

Property Details

processingTime

Signature

static readonly processingTime = 50;

Method Details

batchBegin

Signature

batchBegin(message: ISequencedDocumentMessage): void;

Parameters

Parameter Type Description
message ISequencedDocumentMessage

batchEnd

Signature

batchEnd(message: ISequencedDocumentMessage): void;

Parameters

Parameter Type Description
message ISequencedDocumentMessage