欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

Laravel数据库队列倒序怎么执行

程序员文章站 2022-06-16 16:00:41
...

Laravel数据库队列倒序的执行方法:首先查看文件路径“Illuminate\Queue”;然后找到代码“orderBy('id', 'asc')”;最后直接把参数“asc”改成“desc”即可。

Laravel数据库队列倒序怎么执行

Laravel 数据库队列倒序怎么执行?

Laravel 数据库队列倒序执行

要实现的结果

Laravel数据库队列倒序怎么执行

laravel 是 101810 101811 101812 ....101819 这样执行的

如果我们想要他 101819 101817 101816 101815 这样倒序执行

看下源码

文件路径:

namespace Illuminate\Queue;
Class DatabaseQueue
protected function getNextAvailableJob($queue)\
{
  $job = $this->database->table($this->table)\
 ->lockForUpdate()\ ->where('queue', $this->getQueue($queue))\
 ->where(function ($query) {
  $this->isAvailable($query);
  $this->isReservedButExpired($query);
 }) ->orderBy('id', 'asc')
 ->first();
}

这是laravel获取下一个队列的方法

我们可以直接把asc改成desc

效果图

Laravel数据库队列倒序怎么执行

Laravel数据库队列倒序怎么执行

我遇到的

因为采集小说10w本  每本都是一个队列(采集章节  平均300章)
1本(300章)要30秒     
24小时采集10w*300 /30/ 86400都要11天了  (我估计要15天)
所以本地从队列从1 2 3 4 5 6开始执行
服务器就从10w 10w-1 10w-2  倒序执行
最后合并章节
相关标签: php laravel