Django:在IIS托管的应用程序上连续运行后台任务

时间:2019-04-18 22:43:37

标签: django iis celery daemon background-task

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

在本地运行应用程序时

python manage.py运行服务器 在应用程序运行时,后台任务可以完美运行。但是,托管在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)

我不知道如何解决此问题。

像Celery这样的工具可以无限期地执行任务吗?我该怎么做?请逐步说明。

1 个答案:

答案 0 :(得分:0)

您可以按照以下步骤将应用程序设置为自动启动:

  • 选择站点->高级设置-> Preload enable =“ true” enter image description here

  • 选择“应用程序池”->“高级设置”->“启动模式=”始终运行”,在“过程模型”部分下,将“空闲超时(分钟)”选项设置为0,然后在“回收”部分下,将“常规”设置为时间间隔(分钟)选项设置为0

enter image description here

  • 从命令提示符处运行iisreset命令。 enter image description here

此外,请检查您是否设置了FastCGI设置: enter image description here

关于, 贾帕。