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
效果图
我遇到的
因为采集小说10w本 每本都是一个队列(采集章节 平均300章)
1本(300章)要30秒
24小时采集10w*300 /30/ 86400都要11天了 (我估计要15天)
所以本地从队列从1 2 3 4 5 6开始执行
服务器就从10w 10w-1 10w-2 倒序执行
最后合并章节
本作品采用《CC 协议》,转载必须注明作者和本文链接