我在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上运行?
答案 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/