Skip to content

bpmn-server / Cron

Class: Cron#

The server's timers: every one it schedules is its own (cancelled by stop(), and by an instance's cancellation), keyed so that a timer is scheduled once in this process.

Across processes, a timer fires once: before firing, the server claims it through the lock port (timer:<item>:<due>, or timer:process:<model>:<element>:<due>), and an item timer fires only while its item still waits. A server that stops leaves its timers in the store; the others pick them up on their next re-read (timers.pollInterval). A claim expires after the lock port's stale age, so a timer whose firing failed is tried again then.

Hierarchy#

↳ Cron

Implements#

Table of contents#

Constructors#

Properties#

Accessors#

Methods#

Constructors#

constructor#

• new Cron(server): Cron

Parameters#

Name Type
server IBPMNServer

Returns#

Cron

Inherited from#

ServerComponent.constructor

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:11

Properties#

timersStarted#

• Private timersStarted: boolean = false

Defined in#

packages/bpmn-server/src/server/Cron.ts:27


stopped#

• Private stopped: boolean = false

Defined in#

packages/bpmn-server/src/server/Cron.ts:28


scheduled#

• Private Readonly scheduled: Map\<string, Scheduled>

Defined in#

packages/bpmn-server/src/server/Cron.ts:29


poller#

• Private poller: Timeout = null

Defined in#

packages/bpmn-server/src/server/Cron.ts:30


counters#

• Readonly counters: Object

Timers this server scheduled and fired: its own counters.

Type declaration#

Name Type
scheduled number
fired number
skipped number
failed number

Defined in#

packages/bpmn-server/src/server/Cron.ts:32


server#

• server: any

Inherited from#

ServerComponent.server

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:10

Accessors#

pending#

• get pending(): number

How many timers are scheduled now.

Returns#

number

Defined in#

packages/bpmn-server/src/server/Cron.ts:59


configuration#

• get configuration(): any

Returns#

any

Inherited from#

ServerComponent.configuration

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:15


logger#

• get logger(): any

Returns#

any

Inherited from#

ServerComponent.logger

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:16


cron#

• get cron(): Cron

Returns#

Cron

Inherited from#

ServerComponent.cron

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:17


cache#

• get cache(): ICacheManager

Returns#

ICacheManager

Inherited from#

ServerComponent.cache

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:18


appDelegate#

• get appDelegate(): any

Returns#

any

Inherited from#

ServerComponent.appDelegate

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:19


engine#

• get engine(): IEngine

Returns#

IEngine

Inherited from#

ServerComponent.engine

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:20


dataStore#

• get dataStore(): any

Returns#

any

Inherited from#

ServerComponent.dataStore

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:21


lockManager#

• get lockManager(): any

The lock port: the configuration's, else the data store's.

Returns#

any

Inherited from#

ServerComponent.lockManager

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:23


definitions#

• get definitions(): any

Returns#

any

Inherited from#

ServerComponent.definitions

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:24


listener#

• get listener(): any

Returns#

any

Inherited from#

ServerComponent.listener

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:25


scriptHandler#

• get scriptHandler(): any

Returns#

any

Inherited from#

ServerComponent.scriptHandler

Defined in#

packages/bpmn-server/src/server/ServerComponent.ts:26

Methods#

timerScheduled#

▸ timerScheduled(timeDue): void

Parameters#

Name Type
timeDue any

Returns#

void

Deprecated

The counters are the server's (cron.counters); kept for callers of the earlier form.

Defined in#

packages/bpmn-server/src/server/Cron.ts:35


timerEnded#

▸ timerEnded(item): void

Parameters#

Name Type
item any

Returns#

void

Deprecated

See timerScheduled.

Defined in#

packages/bpmn-server/src/server/Cron.ts:37


start#

▸ start(): Promise\<void>

Returns#

Promise\<void>

Implementation of#

ICron.start

Defined in#

packages/bpmn-server/src/server/Cron.ts:39


stop#

▸ stop(): void

Cancels every timer this server owns, and its re-reads.

Returns#

void

Implementation of#

ICron.stop

Defined in#

packages/bpmn-server/src/server/Cron.ts:50


startTimers#

▸ startTimers(): Promise\<void>

Returns#

Promise\<void>

Implementation of#

ICron.startTimers

Defined in#

packages/bpmn-server/src/server/Cron.ts:61


checkTimers#

▸ checkTimers(duration?): Promise\<void>

Schedules every waiting timer item in the store that this server has not scheduled yet: recovery at start, and the periodic re-read.

Parameters#

Name Type Default value
duration number 0

Returns#

Promise\<void>

Implementation of#

ICron.checkTimers

Defined in#

packages/bpmn-server/src/server/Cron.ts:81


scheduleItemTimer#

▸ scheduleItemTimer(item, onDue): void

Schedules a timer item's onDue (the Timer behaviour's own firing), claimed first, unless this server has already scheduled it.

Parameters#

Name Type
item Object
item.id string
item.timeDue any
item.instanceId? string
onDue () => Promise\<void>

Returns#

void

Defined in#

packages/bpmn-server/src/server/Cron.ts:96


cancelInstance#

▸ cancelInstance(instanceId): void

Cancels the timers of one instance (its cancellation).

Parameters#

Name Type
instanceId string

Returns#

void

Defined in#

packages/bpmn-server/src/server/Cron.ts:101


scheduleItem#

▸ scheduleItem(item): void

Parameters#

Name Type
item any

Returns#

void

Defined in#

packages/bpmn-server/src/server/Cron.ts:107


itemTimerExpired#

▸ itemTimerExpired(entry): Promise\<void>

Parameters#

Name Type
entry any

Returns#

Promise\<void>

Defined in#

packages/bpmn-server/src/server/Cron.ts:112


processTimerExpired#

▸ processTimerExpired(event): Promise\<void>

Parameters#

Name Type
event any

Returns#

Promise\<void>

Defined in#

packages/bpmn-server/src/server/Cron.ts:129


scheduleProcess#

▸ scheduleProcess(entry): void

Parameters#

Name Type
entry any

Returns#

void

Defined in#

packages/bpmn-server/src/server/Cron.ts:135


schedule#

▸ schedule(key, delayMs, instanceId, fire): void

One timer, owned by this server, once per key; a delay longer than setTimeout takes is waited out in steps.

Parameters#

Name Type
key string
delayMs number
instanceId string
fire () => Promise\<void>

Returns#

void

Defined in#

packages/bpmn-server/src/server/Cron.ts:147


fireClaimed#

▸ fireClaimed(claim, fire): Promise\<void>

Fires fire when this server wins the claim on claim; otherwise another server has fired, or is firing, it.

Parameters#

Name Type
claim string
fire () => Promise\<void>

Returns#

Promise\<void>

Defined in#

packages/bpmn-server/src/server/Cron.ts:161


report#

▸ report(error): void

Parameters#

Name Type
error any

Returns#

void

Defined in#

packages/bpmn-server/src/server/Cron.ts:171


time#

▸ time(value): number

A due time as milliseconds: stored as a number, a Date, or (by a JSON store) an ISO string.

Parameters#

Name Type
value any

Returns#

number

Defined in#

packages/bpmn-server/src/server/Cron.ts:176


checkCron#

▸ checkCron(expression, referenceDateTime): number

Parameters#

Name Type
expression any
referenceDateTime any

Returns#

number

Defined in#

packages/bpmn-server/src/server/Cron.ts:181


timeDue#

▸ timeDue(expression, referenceDateTime): any

Parameters#

Name Type
expression any
referenceDateTime any

Returns#

any

Defined in#

packages/bpmn-server/src/server/Cron.ts:200

Comments