ThinkPHP + Supervisor 队列任务丢失:僵尸 Worker 排查全记录

僵尸进程

程序:thinkphp6+think-queue

环境:宝塔linux+Supervisor

问题现象:

我有一个脚本,每半个小时查询需要执行的任务,再通过消费队列的方式,投递执行。

已知,当前半个小时执行数量20,从11:30到14:00,理论上在日志中,至少有120条记录,日志只有不到10条,而且消费的任务名称不一致(我在日志中会输出当前执行的是什么任务),无规律,

也就是出现任务丢失。

查看thinkphp的log,无异常。查看队列的异常log,也无异常。

排查发现,其他队列正常。只有cron这个处理定时任务的队列异常。

在Supervisor重启cron后,14:00那一轮也只有2条。

排查发现

bash 复制代码
[root@iZ8vbhyenz6cZ public]# ps aux | grep -E "queue:work.*cron"
root      197330  0.0  0.5 223276 45300 ?        S    14:13   0:00 php think queue:work --queue cron --tries 1 --timeout 300
root      198191  0.0  0.0   5756   940 pts/1    S+   14:17   0:00 grep --color=auto -E queue:work.*cron
root     1278768  0.0  1.3 321236 104348 ?       S    May25   5:26 php think queue:work --queue cron --tries 1 --timeout 300
root     3919432  0.0  0.4 227376 32128 ?        S    11:24   0:02 php think queue:work --queue cron --tries 1 --timeout 300
[root@iZ8vbhyenz6cZ public]# /www/server/panel/pyenv/bin/supervisorctl status | grep -i cron
cron:cron_00                                                 RUNNING   pid 197330, uptime 0:04:15
[root@iZ8vbhyenz6cZ public]#

发现了,3个进程同时在消费同一个 cron 队列。

Supervisor用的是197330,而我设置的进程数量只有1,理论上就应该只有1个进程。

那就意味着,冒出来的1278768 、3919432是异常的,大概率分发到他们了,进程在但实际未工作。

bash 复制代码
# 杀掉两个僵尸 Worker(1278768 和 3919432)
kill -9 1278768 3919432

# 确认杀干净了
ps aux | grep -E "queue:work.*cron"

重新投递未执行成功的任务。正常。

14:30那一轮也正常执行了。

你好,我是勤勤学长。

相关推荐
天诰12 小时前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程
陈希12314 小时前
Linux 防火墙配置实战:firewalld、iptables 与云安全组
linux·运维·服务器
女神下凡15 小时前
芯参谋(95):嵌入式文件系统_开发指南
linux·服务器·arm开发·驱动开发·设计规范
@兽血沸腾15 小时前
Windows系统安装Jenkins部署应用至远程Windows服务器操作指南
运维·服务器·jenkins
讯捷蓝达21 小时前
戴尔R720xd服务器卡死在 “Configuring Memory...Done“,换了内存还是卡?问题根本不在内存
运维·服务器
数字新视界1 天前
动环监控信创适配在智能机房管理中的应用价值与未来展望
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
爱和冰阔落1 天前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
lisanmengmeng1 天前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器
Android系统攻城狮1 天前
Linux FFmpeg深度解析之av_write_frame调用流程与实战(三十三)
linux·运维·服务器·ffmpeg·音视频进阶·ffmpeg音视频
上火的金鱼妹1 天前
k8s生产实际问题排查(网关,数据库读写等)
运维·服务器