Запланированная работа из приложения Flask - PullRequest
0 голосов
/ 25 марта 2019

Я надеюсь получить базовое понимание процессов запланированных задач и почему такие вещи, как Celery, рекомендуются для Flask.

Моя ситуация - это веб-инструмент, который генерирует электронные таблицы на основе пользовательского ввода. Я сохраняю эти таблицы во временный каталог, и когда пользователь нажимает кнопку «скачать», я использую функцию «send_from_directory» Flask, чтобы использовать файл в качестве вложения. Мне нужна фоновая служба для запуска каждые 15 минут или около того, чтобы очистить временный каталог всех файлов старше 15 минут.

Моим первоначальным планом был базовый скрипт на python, выполняемый в цикле while (True), но я провел некоторое исследование, чтобы найти то, что обычно делают люди, и все рекомендуют Celery или другие менеджеры задач. Я заглянул в Celery и обнаружил, что мне также нужно узнать о Redis, и мне, очевидно, нужно разместить Redis в среде Unix. Это большая проблема для скрипта, который просто удаляет файлы каждые 15 минут.

Я занимаюсь разработкой своего приложения Flask локально в Windows со встроенным сервером разработки и внедряю его на виртуальной машине в корпоративной интрасети с IIS. Я учусь по ходу дела, поэтому, пожалуйста, объясните, почему нужно так много машин, чтобы регулярно вызывать скрипт, который просто удаляет вещи. Это кажется чрезмерным усложнением, но, как я уже сказал, я пытаюсь учиться на ходу, поэтому я хочу делать / учить это правильно.

Спасибо!

1 Ответ

0 голосов
/ 25 марта 2019

Вы бы не использовали сельдерей или редис для этого.Задание cron было бы совершенно уместным.

Celery предназначен для заданий, которые должны выполняться асинхронно, но в ответ на события в процессах главного сервера.Например, если форма регистрации требует отправки уведомления по электронной почте, это будет запланировано и запущено через Celery, чтобы не блокировать основной веб-ответ.

...