今天遇到一个问题,使用tp队列时发现有部分队列没执行(直接没进入执行函数)
问题就是“部分没执行”,监控生产队列的时候redis正常返回id,后来发现是其他项目也有用到队列,而没有给队列加上名称,导致两个都是用一个名称,先后执行不同。
解决方案也就很简单了,在执行的时候加上队列名称就行了,新增队列的时候给一个名称或者在queue.php里面配置全局。
然后在监控队列的时候指定队列名称就行了(用listen或者work都行,work性能相对好点,具体看业务)
php82 think queue:listen --queue bs_sku_shop_default
总结:如果服务器有多个项目,用了相同的队列扩展,应该设置一个具有项目特性的队列名称避免冲突。在开发中养成“唯一性”习惯更好。