Timer that sends messages to WebSocket connections
A timer is a trigger that sends messages to WebSocket connections on schedule. The schedule is entered as a cron expression. The cron expression uses UTC+0
A timer requires a service account to send messages to WebSocket connections.
For more information about creating a timer, see Creating a timer that sends messages to WebSocket connections.
Cron expression format
The order of fields in the cron expression: Minutes Hours Day-of-month Month Day-of-week Year.
Possible field values
Note
Special characters used, as well as the names of months and days of the week, are case-insensitive: MON is the same as mon.
| Field name |
Required field |
Acceptable values |
Special characters supported |
|---|---|---|---|
Minutes |
Yes | 0-59 | ,, -, *, / |
Hours |
Yes | 0-23 | ,, -, *, / |
Day of month |
Yes | 1-31 | ,, -, *, ?, /, L, W |
Month |
Yes | 1-12, JAN-DEC |
,, -, *, / |
Day of week |
Yes | 1-7, SUN-SAT |
,, -, *, ?, /, L, # |
Year |
No | empty, 1970-2099 | ,, -, *, / |
Special characters
You can use the following special characters in cron expressions:
-
*: Select all values in the field.The
*character in theMinutesfield: The trigger startsevery minute. -
?: Select any field value. You can't fillDay of monthandDay of weekat the same time. If you entered a value in one of these fields, enter?in the other field.10inDay of monthand?inDay of week: The trigger is launched every 10th day of the month. -
-: Select a range of values.The
10-12range inHours: the trigger runs at 10 AM, 11 AM, and noon. -
,: Select multiple values.MON,WED,FRIin theDay of weekfield: the trigger runs on Monday, Wednesday, and Friday. -
/: Increment the value.0/15in theMinutesfield: The trigger starts at 0, 15, 30, and 45 minutes past each hour. -
L: This character functions differently in the two fields where it's used:- In the
Day of monthfield, it means the last day of the month. - In the
Day of weekfield, it means the last day of the week,7(Saturday,SAT).
Lin theDay of monthfield: the trigger runs on January 31, February 28, and so on. - In the
-
W: Select the weekday nearest to the specified date.15Win theDay of monthfield: The trigger is run on the weekday nearest to the 15th day of the month. If the 15th day is Saturday, the trigger runs on Friday the 14th.Note
The characters
LandWin theDay of monthfield can be also merged intoLW: The trigger is run on the last weekday of the month. -
#: Select the Nth day of the month.The value
6#3in theDay of weekfield: The trigger runs on the third Friday of the month (6 — Friday, 3 — the third Friday of the month).
Examples of cron expressions
| Cron expression | Description |
|---|---|
* * * * ? * |
The trigger is run every minute. |
0 * ? * * * |
The trigger is run every hour. |
15 10 ? * * * |
The trigger is run every day at 10:15 AM. |
Roles required for timers to run correctly
- To create a timer, you need a permission for the service account under which the timer executes the operation. This permission comes with the iam.serviceAccounts.user and editor roles or higher.
- To activate a timer, the service account needs the
api-gateway.websocketBroadcasterrole for the folder containing the API gateway.
Read more about access management.
Timer message format
After the trigger fires, it will send the following message to WebSocket connections:
{
"messages": [
{
"event_metadata": {
"event_id": "a1s41g2n5g0o********",
"event_type": "yandex.cloud.events.serverless.triggers.TimerMessage",
"created_at": "2019-12-04T12:05:14.227761Z",
"cloud_id": "b1gvlrnlei4l********",
"folder_id": "b1g88tflru0e********"
},
"details": {
"trigger_id": "a1sfe084v4se********",
"payload": "payload-message"
}
}
]
}