模拟了一下多进程队列造成失败后的情况(以最坏情况打算的),发现如果失败会一直堆积,并不会有过期情况,而list的key是拼接 queue_{redis-queue}-failedsend-slow-mail 前面一段还好,只是后面这一段是根据目录命拼接而成, 如果是自行用定时器检测失败任务,是不是每增加一个队列都得增加, 有没有类似think-queue的处理办法,再尝试多次失败后(真·失败)调用“失败方法” 各位是怎么处理的,有无优一些的方案
你理解的是错误的。 以下为官方源码
/** * 待消费的 Queue waiting for consumption */ const QUEUE_WAITING = '{redis-queue}-waiting'; /** * 延时队列 Queue with delayed consumption */ const QUEUE_DELAYED = '{redis-queue}-delayed'; /** * 失败超过重试次数的 Queue with consumption failure */ const QUEUE_FAILED = '{redis-queue}-failed';
...不是,你误解我意思了,我的意思是疯狂失败后,最终都会进入QUEUE_WAITING,那么就让他堆积在那里吗
OK,是我打错了,我想说的是failed队列
OK,收工,只要加了try就不对堆积,不try就堆积
你理解的是错误的。
以下为官方源码
...不是,你误解我意思了,我的意思是疯狂失败后,最终都会进入QUEUE_WAITING,那么就让他堆积在那里吗
OK,是我打错了,我想说的是failed队列
OK,收工,只要加了try就不对堆积,不try就堆积