Как управлять долгосрочными задачами с помощью веб-сайта
У меня есть сайт на django, где я могу регистрировать некоторые слушатели событий и задачи мониторинга на определенных сайтах, просматривать информацию об этих задачах, редактировать, удалять и т.д. Эти задачи долго выполняются, поэтому я запускаю их как задачи в цикле событий asyncio. Я хочу, чтобы они были независимы от сайта django, поэтому я запускаю эти задачи в цикле событий вместе с веб-сервером Sanic, и управляю им с помощью api вызовов с сервера django. Я не знаю почему, но мне кажется, что это решение довольно убогое, так что есть ли лучший способ сделать это? Я думал об использовании kubernetes, но эти задачи не требуют больших ресурсов и являются простыми, так что я не думаю, что стоит запускать новый pod для каждого. Спасибо за помощь
Идеально, всегда хорошо запустить новую капсулу для нового события или работы.
Вы можете использовать cronjob в Kubernetes, чтобы они автоматически удалялись после завершения работы.
Всегда лучше придерживаться отдельных и небольших микросервисов, чем запускать все монолитное приложение внутри контейнера.
Со стороны управления, используя запуск новой капсулы, будет легко управлять, а также экономически эффективно, если вы увеличиваете и уменьшаете масштаб кластера в соответствии с потребностью в ресурсах.
Вы также можете использовать брокер сообщений и слушатель, который будет прослушивать канал в брокере сообщений и выполнять асинхронную задачу или событие, если таковые имеются. Слушатель рассматривается как отдельный pod.