如何在 Laravel 8 中获取作业批次列表

问题描述 投票:0回答:2

Laravel 8 引入了Job Batching,它允许批量执行作业并在批量完成时执行操作。 该功能本身似乎非常有用,它甚至有一个

Illuminate\Bus\Batch
实例,允许检查作业批次并与之交互。

似乎有一种方法可以通过id获取单个Batch

Bus::findBatch($batchId);
,但不幸的是我找不到一种方法来获取Batch的集合。 是否可以获取多个作业批次,或者唯一的方法是为
Bus::findBatch($batchId);
表中的每个
$batchId
分别调用
job_batches

laravel queue jobs batching job-batching
2个回答
1
投票

我看了一下 Laravel Horizon 的实现。似乎他们正在创建一个服务提供者,该服务提供者注册地平线面板使用的命令和服务。如果该服务提供程序已启动(意味着您安装了 Horizon),则可以在任何控制器构造函数或方法中捕获 BatchRepository 的实例。 BatchRepository 对象提供了一个 get 方法来检索数据库中的批次列表。

也应该可以使用 Horizon-api-routes 检索列表。 参见:


0
投票

试试这个!超级简单

use Illuminate\Support\Facades\DB;

   public function getAllBatches()
{
    return DB::table('job_batches')->get();
}
© www.soinside.com 2019 - 2024. All rights reserved.