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

问题描述

Laravel 8 引入了 Job Batching,它允许批量执行作业并在批量完成时执行操作。 该功能本身似乎非常有用,它甚至有一个 Illuminate\Bus\Batch 实例,可用于检查 Jobs Batch 并与之交互。

似乎有一种方法可以通过 id Bus::findBatch($batchId); 获取单个 Batch,但不幸的是,我找不到一种方法获取批量集合。 是否可以获取多个作业批次,或者唯一的方法是为 Bus::findBatch($batchId); 表中的每个 $batchId 单独调用 job_batches

解决方法

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

enter image description here enter image description here 也应该可以通过使用 horizo​​n-api-routes 来检索列表。 见:

enter image description here