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​

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

Static Properties​

PropertyTypeDescription
processingTime

Methods​

MethodReturn TypeDescription
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​

ParameterTypeDescription
deltaManagerIDeltaManager<ISequencedDocumentMessage, IDocumentMessage>
loggerITelemetryLogger

Property Details​

processingTime​

Signature​

static readonly processingTime = 50;

Method Details​

batchBegin​

Signature​

batchBegin(message: ISequencedDocumentMessage): void;

Parameters​

ParameterTypeDescription
messageISequencedDocumentMessage

batchEnd​

Signature​

batchEnd(message: ISequencedDocumentMessage): void;

Parameters​

ParameterTypeDescription
messageISequencedDocumentMessage