Каков синтаксис chalice @ app.schedule для событий cron? - PullRequest
1 голос
/ 04 марта 2020

Я пытаюсь следовать документации из https://chalice.readthedocs.io/en/latest/topics/events.html

Я попробовал это

@app.schedule('0 0 * * ? *')
def dataRefresh(event):
    print(event.to_dict())

и получил эту ошибку:

botocore.exceptions.ClientError: Произошла ошибка (ValidationException) при вызове операции PutRule: Параметр ScheduleExpression недействителен.

и поэтому попытался это сделать:

@app.schedule(Cron('0 0 * * ? *'))
def dataRefresh(event):
    print(event.to_dict())

и получил эту другую ошибку:

NameError: имя 'Cron' не определено

Ничего не работает ... каков правильный синтаксис?

1 Ответ

2 голосов
/ 04 марта 2020

Если вы хотите использовать объект Cron, вам необходимо импортировать его из пакета с чашей, а затем каждое значение является позиционным параметром для объекта Cron:

from chalice import Chalice, Cron

app = Chalice(app_name='sched')


@app.schedule(Cron(0, 0, '*', '*', '?', '*'))
def my_schedule():
    return {'hello': 'world'}

Вот документы для Cron с дополнительной информацией.

Или используйте этот синтаксис, который работает без дополнительного импорта:

@app.schedule('cron(0 0 * * ? *)')
def dataRefresh(event):
    print(event.to_dict())
...