import asyncio from django.core.management.base import BaseCommand from scheduler.apps import scheduler_instance from scheduler.tasks import load_tasks_to_scheduler class Command(BaseCommand): help = "Запуск планировщика задач" def handle(self, *args, **kwargs): """ Создаёт новый event loop, запускает планировщик и загружает задачи. """ try: print("Проверка состояния перед запуском:") print(f"Scheduler instance: {scheduler_instance}") # Создаём новый event loop loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) # Устанавливаем event loop в планировщик scheduler_instance.configure(event_loop=loop) # Запускаем планировщик scheduler_instance.start() # Загружаем задачи load_tasks_to_scheduler(scheduler_instance) self.stdout.write(self.style.SUCCESS("Планировщик успешно запущен.")) # Удерживаем цикл событий loop.run_forever() except KeyboardInterrupt: self.stdout.write(self.style.WARNING("Остановка планировщика.")) finally: # Завершаем работу планировщика scheduler_instance.shutdown(wait=False)