Windows:Python守护程序不会在IIS上运行,而是在本地运行

时间:2019-02-12 16:01:52

标签: python django iis daemon

我在IIS上托管了Django Web应用程序。我的子流程应该与Web应用程序一起持续运行。当我使用

在本地运行应用程序时
 python manage.py runserver 

后台任务在应用程序运行时完美运行。但是,托管在IIS上的后台任务似乎没有运行。即使托管在IIS上,如何使任务运行?

在Django的manage.py文件中,我具有以下代码:

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 :(得分:0)

Celery是后台任务管理器的经典​​选项。

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

或者,当我想要更轻量的东西时,我使用了一个名为schedule的库。请注意,时间表仍处于起步阶段。如果您需要某种东西来维持线下的支持,请选择芹菜以确保安全。

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

在不知道您的项目上下文的情况下,我无法确定该选择哪个,但是它们都是任务管理的不错选择。

答案 1 :(得分:0)

在Windows上,您可以使用Task Scheduler在Windows启动时使用任意用户帐户自动启动后台进程。 直到几年前,这还是Windows上Celery 3的“官方建议”解决方案,我相信它可以很容易地适应于运行任何进程。 您可以在此处找到详细的说明:

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