问题描述
Laravel 8 引入了 Job Batching,它允许批量执行作业并在批量完成时执行操作。
该功能本身似乎非常有用,它甚至有一个 Illuminate\Bus\Batch
实例,可用于检查 Jobs Batch 并与之交互。
似乎有一种方法可以通过 id Bus::findBatch($batchId);
获取单个 Batch,但不幸的是,我找不到一种方法来获取批量集合。
是否可以获取多个作业批次,或者唯一的方法是为 Bus::findBatch($batchId);
表中的每个 $batchId
单独调用 job_batches
?
解决方法
我看了一下laravel horizon的实现。似乎他们正在创建一个服务提供者,它注册地平线面板使用的命令和服务。如果该服务提供者已启动(意味着您安装了 horizon),则可以在任何控制器构造函数或方法中捕获 BatchRepository 的实例。 BatchRepository-object 提供了一个 get 方法来检索数据库中的批次列表。