uwsgi启动django_django_apscheduler + uwsgi 同一个定时任务重复执行解决方法。

使用django_apscheduler创建定时任务时,因多进程导致任务重复执行。介绍了三种解决方案:使用锁机制、限定uwsgi进程数及独立部署定时任务服务。

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

使用django_apscheduler动态创建定时任务,同一个任务被执行多次,暂时猜测原因是通过uwsgi启动django服务是多进程,每个进程启动了一个定时任务调度器,造成同一个定时任务被多次执行。

关于这个问题向django_apscheduler开发者发送邮件咨询,没有回复..

目前的解决方法:

1.固定的定时任务,通过socket或文件锁的方式解决,百度可查。但动态添加时不可用,会造成无法添加定时任务的问题。

2.设定uwsgi进程数为1,此方法限制了django服务的并发量,小规模访问时可采用此种方法,简单稳定.

3.通过类似celery的方式将django_apscheduler定时任务独立出来单独启动一套服务,设定单进程运行。这种方法解决了重复执行的问题,同时解放了django后台并发限制,并且可以处理即时的异步任务。(这是我自己的解决办法)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值