Class: MatrixScheduler

scheduler~MatrixScheduler

new MatrixScheduler(retryAlgorithm, queueAlgorithm)

Construct a scheduler for Matrix. Requires module:scheduler~MatrixScheduler#setProcessFunction to be provided with a way of processing events.
Parameters:
Name Type Description
retryAlgorithm module:scheduler~retryAlgorithm Optional. The retry algorithm to apply when determining when to try to send an event again. Defaults to module:scheduler~MatrixScheduler.RETRY_BACKOFF_RATELIMIT.
queueAlgorithm module:scheduler~queueAlgorithm Optional. The queuing algorithm to apply when determining which events should be sent before the given event. Defaults to module:scheduler~MatrixScheduler.QUEUE_MESSAGES.
Source:

Methods

(static) QUEUE_MESSAGES(event) → {string}

Queues m.room.message events and lets other events continue concurrently.
Parameters:
Name Type Description
event MatrixEvent
Source:
See:
Returns:
Type
string

(static) RETRY_BACKOFF_RATELIMIT(event, attempts, err) → {Number}

Retries events up to 4 times using exponential backoff. This produces wait times of 2, 4, 8, and 16 seconds (30s total) after which we give up. If the failure was due to a rate limited request, the time specified in the error is waited before being retried.
Parameters:
Name Type Description
event MatrixEvent
attempts Number
err MatrixError
Source:
See:
Returns:
Type
Number

getQueueForEvent(event) → (nullable) {Array.<MatrixEvent>}

Retrieve a queue based on an event. The event provided does not need to be in the queue.
Parameters:
Name Type Description
event MatrixEvent An event to get the queue for.
Source:
See:
  • MatrixScheduler.removeEventFromQueue To remove an event from the queue.
Returns:
A shallow copy of events in the queue or null. Modifying this array will not modify the list itself. Modifying events in this array will modify the underlying event in the queue.
Type
Array.<MatrixEvent>

queueEvent(event) → (nullable) {Promise}

Queue an event if it is required and start processing queues.
Parameters:
Name Type Description
event MatrixEvent The event that may be queued.
Source:
Returns:
A promise if the event was queued, which will be resolved or rejected in due time, else null.
Type
Promise

removeEventFromQueue(event) → {boolean}

Remove this event from the queue. The event is equal to another event if they have the same ID returned from event.getId().
Parameters:
Name Type Description
event MatrixEvent The event to remove.
Source:
Returns:
True if this event was removed.
Type
boolean

setProcessFunction(fn)

Set the process function. Required for events in the queue to be processed. If set after events have been added to the queue, this will immediately start processing them.
Parameters:
Name Type Description
fn module:scheduler~processFn The function that can process events in the queue.
Source: