Python CGI очередь
Я работаю над довольно простым CGI с Python. Я собираюсь положить его в Django и т. Д. Общая настройка довольно стандартная сторона сервера (то есть расчет производится на сервере):
Пользователь загружает файлы данных и нажимает кнопку «Выполнить»Сервер параллельно работает за кулисами, используя много оперативной памяти и мощности процессора. Спустя ~ 5-10 минут (средний вариант использования) программа завершает работу, создав файл ее вывода и несколько файлов рисунков .png.Сервер отображает веб-страницу с цифрами и кратким текстомЯ не думаю, что будут сотни или тысячи людей, использующих это одновременно; однако, поскольку для выполнения вычислений требуется изрядное количество оперативной памяти и мощности процессора (каждый экземпляр выполняет наиболее ресурсоемкую задачу с использованием PythonPool
).
Я задавался вопросом, знаете ли вы, стоит ли беспокоиться об использовании системы очередей. Я наткнулся на модуль Python под названиемbeanstalkc
, но на странице говорится, что это была система очередей в памяти.
Что означает «в памяти» в этом контексте? Я беспокоюсь о памяти, а не только о времени процессора, и поэтому хочу убедиться, что одновременно выполняется только одно задание (или хранится в ОЗУ, независимо от того, получает ли оно время ЦП или нет).
Кроме того, я пытался решить,
страница результатов (обслуживаемая CGI) должна сообщать вам о своей позиции в очереди (до тех пор, пока она не запустится, а затем отобразит реальную страницу результатов)ИЛИ ЖЕ
пользователь должен отправить свой адрес электронной почты в CGI, который отправит им ссылку на страницу результатов, когда она будет завершена.
Как вы думаете, что является подходящей методологией проектирования для CGI со светофором для такой проблемы? Совет очень ценится.