Общаться с бэкэнд -заданием с веб -сервера или веб -страницы

StackOverflow https://stackoverflow.com/questions/1504729

  •  19-09-2019
  •  | 
  •  

Вопрос

У меня есть «прибор» (из -за отсутствия лучшего описания) запуска Linux.

В настоящее время я вхожу в коробку, чтобы запустить задание. Это недостаточно дружелюбно для моих пользователей, поэтому я собираю простой веб -интерфейс для запуска сценария. Работа проходит от 10 секунд до нескольких часов. Веб -интерфейс должен отражать статус работы.

В прошлом я решал аналогичные проблемы, запустив демон на сервере, который наблюдает за каталогом Spool (или таблицей DB) для новых запросов на работу, порождает процесс, отслеживает процесс и предоставляет информацию для веб -пользовательского интерфейса в таблице DB или файл статуса. Затем веб -пользовательский интерфейс бросает запросы на работу в DIR -катушки (DB) и иногда проверяет файл состояния (DB). Это может быть излишним для этой задачи.

Для текущей задачи я рассматриваю нерестую работу с CGI и иногда проверяю файл статуса, который задание записывает по мере его развития или выходов.

Мой вопрос: есть ли лучший (более простой/более быстрый/более надежный) способ сделать это? Существуют ли существующие шаблоны или инструменты, о которых я должен знать?

(Решения Python идеальны.)

Спасибо.

Это было полезно?

Решение

Я делаю это в ряде проектов. Веб-приложение (в основном Python/CGI), которое порождает отдельный сценарий Python (с использованием подпроцесса), который мгновенно Демонизирует себя сделать работу. Затем веб-приложение продолжает выдавать запросы AJAX для проверки прогресса процесса Daemon (я использую простые файлы TXT для связи, база данных, вероятно, была бы лучше). Одним из приятных прикосновений является то, что Daemon Email Email конечного пользователя после его завершения (со ссылкой для получения результатов). Таким образом, пользователь может закрыть свой веб -браузер на тех заданиях, которые занимают часы.

Другие советы

Я не уверен, правильно ли я понял вашу проблему, но я предполагаю, что у вас есть несколько «заданий», которые могут работать одновременно и хотят, чтобы они показали на веб -странице, являются ли они полными или нет?

При запуске задания веб -страница (например, Python & Mod_wsgi) запустит скрипт Python, который введет задание, скажем, SQLite Databas это помечено как полное

Страница статуса просто покажет материал от SQLite.

То, что вы хотите поместить в DB в дополнение к идентификатору задания и, возможно, время начала/окончания зависит от того, что вы хотите показать на веб -странице статуса работы.

На сеноте - если «рабочие места» являются компиляциями, встретитесь Гудзон

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top