【问题标题】:Django: Run Constantly Running Background Task On IIS-Hosted ApplicationDjango:在 IIS 托管的应用程序上运行不断运行的后台任务
【发布时间】:2019-04-18 22:43:37
【问题描述】:

我有一个托管在 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)

我不知道如何解决这个问题。

像 Celery 这样的东西会无限期地运行任务吗?我该怎么做?请提供分步说明。

【问题讨论】:

  • 你找到解决办法了吗?

标签: django iis celery daemon background-task


【解决方案1】:

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

  • 选择站点->高级设置->预加载启用=”true”

  • 选择 Application pool->advance setting->start mode=”always running”,在 Process Model 部分下,将 Idle Time-out (minutes) 选项设置为 0,在 Recycling 部分下,设置 Regular Time Interval (分钟)选项为 0

  • 从命令提示符运行 iisreset 命令。

另外,检查您是否设置了 FastCGI 设置:

问候, 贾尔帕。

【讨论】:

  • 设置完这些,我的 python 进程在 5 分钟没有传入请求后仍然死掉
猜你喜欢
  • 1970-01-01
  • 2020-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多