当处理作业批处理时,当它转到下一个作业并完成时,它将抛出一个反射异常。你可以在照明弹上找到我的异常细节。
我见过其他关于反射异常的帖子,所以我试过
composer updatecomposer dump-autoload我的工作使用以下代码分派:
$batch = Bus::batch(
$this->sisProvider()
->syncSchools()
->filter(fn (School $school) => $school->active)
->map(fn (School $school) => SyncSchool::dispatch($school))
)->then(function (Batch $batch) {
$this->notifySyncEmails(TenantSyncComplete::class);
})->catch(function (Batch $batch, \Throwable $ex) {
$this->notifySyncEmails(TenantSyncFailed::class);
})->finally(function (Batch $batch) {
$this->update(['batch_id' => null]);
})->name('Tenant SIS Sync')->dispatch();发布于 2021-04-26 02:51:50
问题是这批货是如何制造的。调用SyncSchool::dispatch($school)独立地分派该作业并返回一个PendingDispatch。因此,在批处理中放入了一个PendingDispatch,而不是我想要的SyncSchool作业。
将映射中的SyncSchool::dispatch($school)更改为new SyncSchool($school)正确地将SyncSchool作业放在批处理中。
教训:仔细阅读文档。
https://stackoverflow.com/questions/67224946
复制相似问题