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 theMinutes
field: The trigger startsevery minute
. -
?
: Select any field value. You can't fillDay of month
andDay of week
at the same time. If you entered a value in one of these fields, enter?
in the other field.10
inDay of month
and?
inDay of week
: The trigger is launched every 10th day of the month. -
-
: Select a range of values.The
10-12
range inHours
: the trigger runs at 10 AM, 11 AM, and noon. -
,
: Select multiple values.MON,WED,FRI
in theDay of week
field: the trigger runs on Monday, Wednesday, and Friday. -
/
: Increment the value.0/15
in theMinutes
field: 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 month
field, it means the last day of the month. - In the
Day of week
field, it means the last day of the week,7
(Saturday,SAT
).
L
in theDay of month
field: the trigger runs on January 31, February 28, and so on. - In the
-
W
: Select the weekday nearest to the specified date.15W
in theDay of month
field: 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
L
andW
in theDay of month
field 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#3
in theDay of week
field: 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.websocketBroadcaster
role 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"
}
}
]
}