有没有什么好办法解决队列超时执行自动放弃

注意这里的超时并不是队列本身执行时间太久,而是插入的队列太多,导致后面插入的队列离执行的时间太久,比如说30分钟。那么我想如果超过30分钟还没执行到的队列自动放弃,避免越来越卡

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 7

另起一个定时任务 将30分钟没执行的队列删了

3年前 评论

增加 worker 数啊

3年前 评论

我看了下文档没看到符合你诉求的信息,不过我认为你可以自己加个逻辑试一下。 首先我们已知队列的投递时间,那么我们也知道超过什么时间就会丢弃掉。那么当队列执行的时候假如已经超时,我们就不希望这个job执行具体的逻辑了,那么直接丢掉。

$this->delete();

3年前 评论

添加队列的时候记录时间,开始执行判断与当前时间的差异是否达到30分钟,达到则跳出这个队列继续下一个,这样就是疯狂删队列数据了

3年前 评论

防止插入队列太多,可以使用原子锁,相同key的队列,根据worker数量你大概估计每分钟可以执行多少个,超过这个阀值的,即未获得锁的,你可以直接删除,或者等待几秒再放回队列

3年前 评论

那就是要有在处理队列的时候知道这条队列插入的时间,你们知道怎么获取吗?

3年前 评论

自动放弃?还能直接主动丢数据了,啥操作。。

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!