Лучший способ запустить задачу в Windows с веб-сервера в Linux - PullRequest
0 голосов
/ 10 октября 2018

У меня есть задача, написанная на Python с 1-2-минутным временем выполнения, которую я хочу запускать по требованию.Запросы будут приходить в очень небольших объемах с сервера Django в Linux.Возвратом будет файл.

Обычно я бы использовал систему очередей, такую ​​как Celery.Но эту задачу можно запустить только в Windows.

Каков наилучший способ сделать это?

Удаленно выполнить задачу, установив сеанс SSH?По-прежнему использовать Celery, пройти через много обходных путей, чтобы заставить его работать на Windows (кажется грязным)?

1 Ответ

0 голосов
/ 10 октября 2018

Я мог бы подумать о 5 решениях, которые не требуют ssh

Я не говорил об аутентификации в моих решениях, вы должны реализовать что-то на основе выбранного решения

Решение 1:

  • написать простое приложение flask / django для windows-сервера, которое запускает задачу и возвращает ответ
  • на вашем linux-сервере, отправить запрос в windows и получить данные
  • linux-сервер можетсделайте этот вызов с использованием сельдерея, чтобы вам не пришлось ждать 2/3 минуты

Решение 2:

  • написать простое приложение flask / django для сервера Windows, которое вызываетзадача сельдерея на заднем плане
    • это приложение должно возвращать URL файла результата
  • задача сельдерея создает файл, который содержит результат
  • .файл с помощью nginx (или статического файлового сервера на базе Windows, я не знаю Windows)
  • отправить запрос с сервера Linux на Windows для получения результата (если файл не существует, это означает, что результат еще не готов)

Решение 3:

  • написать простое приложение flask / django для windows-сервера, которое вызывает задачу сельдерея на заднем плане
    • это приложение возвращает случайный идентификатордля данного запроса
  • с вашего сервера Linux отправляйте запросы в приложение Windows с идентификатором задачи
  • , когда задача завершена. Приложение Windows возвращает результат

Решение 4:

  • написать простое приложение flask / django для windows-сервера, которое вызывает задание celery на заднем плане
  • добавить конечную точку в ваше приложение linux django для загрузки данных
  • когда приложение windows заканчивает обработку, оно загружает данные в приложение linux django

Решение 5:

  • решение 4, но ваше приложение linux django не предназначено для загрузки данных.он только устанавливает логическое значение, означающее, что задача выполнена
  • , если задача выполнена, сервер linux отправляет запрос на сервер winsows для получения данных (этот запрос содержит идентификатор задачи)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...