Windows:Python 守护进程不会 运行 在 IIS 上,但 运行 在本地

Windows: Python Daemon Won't Run on IIS but Runs Locally

我有一个托管在 IIS 上的 Django Web 应用程序。我的子进程应该始终 运行ning 与 Web 应用程序并存。当我 运行 本地应用程序使用

 python manage.py runserver 

后台任务 运行 在应用程序 运行ning 时完美运行。但是,托管在 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 上也是如此?

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

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

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

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

在不知道您的项目背景的情况下,我不能说我会选择哪个,但它们都是任务管理的不错选择。

在 Windows 上,您可以使用任务计划程序在 Windows 启动时使用任意用户帐户自动启动后台进程。 这是几年前 Windows 上 Celery 3 的 "officially suggested" 解决方案,我相信它可以很容易地适应 运行 任何进程。 你可以在这里找到详细的解释:

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