""" Расписание периодических задач Celery Beat. """ from celery.schedules import crontab # Расписание периодических задач CELERY_BEAT_SCHEDULE = { # Отправка отложенных уведомлений (каждую минуту) 'send-scheduled-notifications': { 'task': 'apps.notifications.tasks.send_scheduled_notifications', 'schedule': 60.0, # каждые 60 секунд }, # Очистка старых уведомлений (каждый день в 3:00) 'cleanup-old-notifications': { 'task': 'apps.notifications.tasks.cleanup_old_notifications', 'schedule': crontab(hour=3, minute=0), }, # Очистка старых записей видео (каждый день в 4:00) 'cleanup-old-recordings': { 'task': 'apps.video.tasks.cleanup_old_recordings', 'schedule': crontab(hour=4, minute=0), }, # Завершение неактивных видеокомнат (каждые 5 минут) 'end-inactive-rooms': { 'task': 'apps.video.tasks.end_inactive_rooms', 'schedule': 300.0, # каждые 5 минут }, # Автоматическое завершение видеокомнат, идущих более 10 минут (каждые 10 минут) 'auto-end-long-rooms': { 'task': 'apps.video.tasks.auto_end_long_rooms', 'schedule': 600.0, # каждые 10 минут }, # ============================================ # ЗАДАЧИ РАСПИСАНИЯ ЗАНЯТИЙ # ============================================ # Автоматическое начало занятий по времени (каждую минуту) 'start-lessons-automatically': { 'task': 'apps.schedule.tasks.start_lessons_automatically', 'schedule': 60.0, # каждые 60 секунд }, # Проверка истекших подписок (каждый день в 00:00) 'check-expired-subscriptions': { 'task': 'apps.subscriptions.tasks.check_expired_subscriptions', 'schedule': crontab(hour=0, minute=0), }, # Предупреждения об истечении подписок (каждый день в 10:00) 'send-expiration-warnings': { 'task': 'apps.subscriptions.tasks.send_expiration_warnings', 'schedule': crontab(hour=10, minute=0), }, # Автопродление подписок (каждый день в 02:00) 'auto-renew-subscriptions': { 'task': 'apps.subscriptions.tasks.auto_renew_subscriptions', 'schedule': crontab(hour=2, minute=0), }, # Сброс месячного использования (1-го числа в 00:00) 'reset-monthly-usage': { 'task': 'apps.subscriptions.tasks.reset_monthly_usage', 'schedule': crontab(day_of_month=1, hour=0, minute=0), }, # Очистка старой истории платежей (1-го числа в 03:00) 'cleanup-old-payment-history': { 'task': 'apps.subscriptions.tasks.cleanup_old_payment_history', 'schedule': crontab(day_of_month=1, hour=3, minute=0), }, # Генерация отчетов по подпискам (1-го числа в 09:00) 'generate-subscription-reports': { 'task': 'apps.subscriptions.tasks.generate_subscription_reports', 'schedule': crontab(day_of_month=1, hour=9, minute=0), }, # ============================================ # ЗАДАЧИ ДОМАШНИХ ЗАДАНИЙ # ============================================ # Напоминания о дедлайнах домашних заданий (каждый день в 09:00) 'send-homework-deadline-reminders': { 'task': 'apps.homework.tasks.send_homework_deadline_reminders', 'schedule': crontab(hour=9, minute=0), }, # Автоматическая проверка домашних заданий через AI (каждые 30 минут) 'auto-check-homework-submissions': { 'task': 'apps.homework.tasks.auto_check_homework_submissions', 'schedule': 1800.0, # каждые 30 минут }, # Проверка просроченных домашних заданий (каждый день в 08:00) 'check-overdue-homeworks': { 'task': 'apps.homework.tasks.check_overdue_homeworks', 'schedule': crontab(hour=8, minute=0), }, # Обновление статистики домашних заданий (каждый день в 02:00) 'update-homework-statistics': { 'task': 'apps.homework.tasks.update_homework_statistics', 'schedule': crontab(hour=2, minute=0), }, # Очистка старых данных домашних заданий (1-го числа в 05:00) 'cleanup-old-homework-data': { 'task': 'apps.homework.tasks.cleanup_old_homework_data', 'schedule': crontab(day_of_month=1, hour=5, minute=0), }, }