gpt4 book ai didi

python - Django后台线程

转载 作者:太空宇宙 更新时间:2023-11-04 04:27:32 27 4
gpt4 key购买 nike

我正在制作Django应用。它需要在服务器运行时进行后台工作(与外部API交互),所以在我看来,我需要启动一个独立于所有外部请求的单独线程。最好的方法是什么?

我的第一个本能是简单地import threading并启动另一个线程,但是我应该将该代码放在Django应用程序中的什么位置?那是正确的方法吗?我需要制作一个与应用程序通信的外部服务脚本吗?

虽然从我的理解来看,这些解决方案仅适用于视图中需要较长时间的任务,但实际上我只能将它们带到django-background-tasks和celery之类的东西,以便在任务实际完成之前返回网页。这些解决方案是否支持后台线程?我不是要每隔x倍的时间运行一个函数,而是希望它从Django启动之时就永远运行。

我希望它最好独立于应用程序内部,因此没有外部服务脚本的解决方案将是理想的。我希望该应用程序可以通过pip安装。

最佳答案

如果计划使用芹菜,则可以使用celery beat定期运行任务,而无需从视图中触发它。 django-celery-beat允许您通过django-admin管理计划。您仍然需要将节拍调度程序和芹菜工作者作为单独的进程运行。

但是,使用celery执行任务可能会使通过pip安装应用程序的用户的设置过程复杂化,因为他们还需要正确设置celery。

解决此问题的一种更简单的方法是将任务实施为django management command,然后从命令提示符处运行该任务,并可以安排将其作为常规cronjob运行。安装软件包后,仍将提醒您的用户配置cronjob。

关于python - Django后台线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53242699/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com