Как написать расписание cron для US Market Hours - PullRequest
1 голос
/ 31 марта 2019

Я планирую настроить функцию Lambda на AWS, используя CloudWatch, чтобы запускать каждую минуту в часы работы рынка США (с 9:30 до 16:00 по восточному поясному времени).

Я считаю, что единственный способ сделать это - использовать cron, и я не очень хорошо знаком с cron и его различными разновидностями (AWS, кажется, допускает некоторые нестандартные функции, такие как MON-FRI).

До сих пор я выяснил, что:

cron(0/1 14-21 ? * MON-FRI *)

, кажется, работает с 9:00 до 16:00 (учитывая, что я использую часовой пояс Лондона, это включает разницу во времени 5 часов).

Как мне начать в 9:30 по восточному поясному времени? И есть ли у cron способ автоматически идти в ногу с изменениями летнего времени?

Ответы [ 2 ]

1 голос
/ 01 апреля 2019

Как мне начать это в 8:30 по восточному поясному времени?

Невозможно использовать стандартный синтаксис cron (в том числе в CloudWatch Events) для выражения 8: 30-4: 00..

Чтобы обойти это ограничение, у вас может быть два выражения

30-59 14 ? * MON-FRI *
* 15-21 ? * MON-FRI *

или вы можете объяснить логику в вашем коде.

И естьспособ для cron автоматически идти в ногу с изменениями летнего времени?

Cron будет использовать локальное системное время при определении того, когда запускать задания.Например, если вы используете cron в Linux, он будет использовать все, что говорит /etc/timezone (debian).Файлы часовых поясов (как , предоставленные IANA ) имеют закодированную информацию об изменении времени.В случае событий CloudWatch - это время UTC .Вам нужно будет исправить изменения часового пояса / времени в своем коде или использовать cron в операционной системе со смещением EST / EDT.

0 голосов
/ 31 марта 2019

Вы можете использовать CloudWatch Events для запуска лямбда-функции при желании.

Он также поддерживает запланированные выражения , который поддерживает синтаксис cron и находится в часовом поясе UTC.

...