Windows: Python Daemon не будет работать на IIS, но будет работать локально - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть веб-приложение Django, размещенное на IIS.Я подпроцесс должен последовательно работать вместе с веб-приложением.Когда я запускаю приложение локально, используя

 python manage.py runserver 

, фоновая задача отлично работает во время работы приложения.Однако размещенная на IIS фоновая задача не запускается.Как заставить задачу работать, даже если она размещена на IIS?

В файле manage.py в Django у меня есть следующий код:

def run_background():
     return subprocess.Popen(["python", "background.py"], creationflag=subprocess.CREATE_NEW_PROCESS_GROUP)
run_background()
execute_from_command_line(sys.argv)

Что можно сделать, чтобы сделать фонзадание всегда запускается даже на IIS?

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019

В Windows вы можете использовать планировщик задач, чтобы автоматически запускать фоновый процесс при запуске Windows, используя произвольную учетную запись пользователя.Это было «официально предложенное» решение для Celery 3 для Windows еще несколько лет назад, и я считаю, что его легко адаптировать для запуска любого процесса.Вы можете найти подробное объяснение здесь:

https://www.calazan.com/windows-tip-run-applications-in-the-background-using-task-scheduler/

0 голосов
/ 19 апреля 2019

Сельдерей - классический вариант для менеджера фоновых задач.

https://pypi.org/project/celery/

В качестве альтернативы я использовал библиотеку с названием schedule, когда мне хотелось чего-то более легкого.Обратите внимание, что график все еще находится в зачаточном состоянии.Если вам нужно что-то, что будет поддерживать вас в будущем, используйте сельдерей на всякий случай.

https://pypi.org/project/schedule/

Не зная контекста вашего проекта, я не могу сказать, какой бы я выбрал, но оба они являются хорошими вариантами управления задачами.

...