Я пытаюсь написать приложение, которое позволит пользователю запустить довольно продолжительный процесс (5-30 секунд). Затем он должен позволить пользователю проверить вывод процесса по мере его создания. Выход будет необходим только для текущего сеанса пользователя, поэтому ничего не нужно долго хранить. У меня есть два вопроса относительно того, как добиться этого, используя преимущества в рамках Пилоны:Как запустить фоновый процесс в Pylons?
Что это лучший способ для запуска фонового процесса, такие как это с контроллером Пилоны?
Каков наилучший способ вернуть результат фонового процесса пользователю? (Должно ли я хранить выход в базе данных, в данной сессии, и т.д.?)
Edit: Проблема заключается в том, если я запустить команду с помощью subprocess
в контроллере, контроллер ожидает подпроцесс перед тем как продолжить, показывая пользователю пустую страницу, которая просто загружается, пока процесс не завершится. Я хочу, чтобы иметь возможность перенаправлять пользователя на страницу состояния сразу после запуска подпроцесса, позволяя ему выполнять самостоятельно.
Я сталкиваюсь с этой проблемой. Это безопасно? Что делать, если у вас 10000 пользователей каждую минуту? И большинство запросов очень дорого? Тогда у вас будет много демонов? Кроме того, вы предлагаете запустить процесс pylon daemon? Благодарю. – User007
Это безопасно? Да, я уже много лет использую это в производственной среде. Просто убедитесь, что процесс вашего демона выходит из строя.На мой груз, вероятно, всего несколько десятков пользователей за * час *. В 10 000 пользователей в час - это какой-либо метод для запуска долговременного процесса, который будет безопасным? Может ли ваш сервер даже обрабатывать такое использование памяти/ЦП? Если вы не разблокировали второй процесс, может ли ваша настройка веб-сервера справиться с этим? – Mark