从django 启动守护进程

本文讨论了在Django中启动后台守护进程遇到的问题及解决方案。首先,通过多线程或多进程启动后台程序会导致Django响应阻塞。为了解决这个问题,尝试在settings.py中创建daemon,但发现settings.py加载多次导致启动了多个守护进程。作者提出了两个改进方案:1. 将PIPE通信改为socket通信,以解决本地通信限制和多级交互问题;2. 检查端口是否被占用来避免启动多个守护进程。此外,还介绍了在Linux下创建真正守护进程的步骤,确保即使Django停止,守护进程也能继续运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    希望通过django启动一个在后台一直运行的程序. 无论是通过使用多线程(threading),还是多进程(subprocess, multiprocessing, os.fork),页面都会返回内容,但一直处于继续等待的界面.分析原因是在django中启动线程后除非kill掉启动的线程或者线程自己结束,否则django都会认为还有消息要返回.

        于是考虑建立一个daemon,在django启动后与其交互.但如此daemon和django要分开启动比较麻烦.决定让daemon在django启动的过程中启动.方法是将建立daemon人过程放在django 的settings.py中.

        很意外,django在启动过程中居然加载了5次settings.py文件,我的daemon也启动了5次.而且一开始我的daemon只是简单的通过pipe进行交互:

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值