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#
- pending
- configuration
- logger
- cron
- cache
- appDelegate
- engine
- dataStore
- lockManager
- definitions
- listener
- scriptHandler
Methods#
- timerScheduled
- timerEnded
- start
- stop
- startTimers
- checkTimers
- scheduleItemTimer
- cancelInstance
- scheduleItem
- itemTimerExpired
- processTimerExpired
- scheduleProcess
- schedule
- fireClaimed
- report
- time
- checkCron
- timeDue
Constructors#
constructor#
• new Cron(server): Cron
Parameters#
| Name | Type |
|---|---|
server |
IBPMNServer |
Returns#
Inherited from#
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#
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#
Inherited from#
ServerComponent.cron
Defined in#
packages/bpmn-server/src/server/ServerComponent.ts:17
cache#
• get cache(): ICacheManager
Returns#
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#
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#
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#
Defined in#
packages/bpmn-server/src/server/Cron.ts:50
startTimers#
▸ startTimers(): Promise\<void>
Returns#
Promise\<void>
Implementation of#
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#
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