Вопрос проверяет понимание роли Celery Beat в управлении периодическими задачами в распределенных системах.
Celery Beat — это планировщик задач для Celery, который запускает задачи по расписанию. Он используется для выполнения периодических или отложенных задач, таких как отправка писем или обновление данных.
Celery Beat — это компонент библиотеки Celery, который отвечает за планирование и автоматический запуск задач по заданному расписанию.
Планирование задач:
Celery Beat использует конфигурацию (например, schedule) для определения, когда и какие задачи запускать.
Поддерживает интервалы (каждые N секунд) или cron-подобные расписания.
Интеграция с Celery:
Работает вместе с Celery, отправляя задачи в очередь для выполнения воркерами.
Требует хранилища (например, базы данных) для сохранения состояния расписания.
from celery import Celery
from celery.schedules import crontab
app = Celery('tasks', broker='redis://localhost:6379/0')
app.conf.beat_schedule = {
'send-report-every-10-seconds': {
'task': 'tasks.send_report',
'schedule': 10.0, # Каждые 10 секунд
},
}
@app.task
def send_report():
print("Sending report...")Для периодических задач, таких как очистка базы данных, отправка уведомлений или обновление кэша.
Для задач, которые нужно выполнять в определенное время (например, по cron)