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

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 7

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

2年前 评论

增加 worker 数啊

2年前 评论
陈先生

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

$this->delete();

2年前 评论

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

2年前 评论

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

2年前 评论

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

2年前 评论

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

2年前 评论

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