首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel作业批处理: PendingDispatch::__invoke()不存在

Laravel作业批处理: PendingDispatch::__invoke()不存在
EN

Stack Overflow用户
提问于 2021-04-23 06:26:16
回答 1查看 792关注 0票数 1

当处理作业批处理时,当它转到下一个作业并完成时,它将抛出一个反射异常。你可以在照明弹上找到我的异常细节

我见过其他关于反射异常的帖子,所以我试过

  • 重新启动贴身
  • composer update
  • composer dump-autoload

我的工作使用以下代码分派:

代码语言:javascript
复制
$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();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-26 02:51:50

问题是这批货是如何制造的。调用SyncSchool::dispatch($school)独立地分派该作业并返回一个PendingDispatch。因此,在批处理中放入了一个PendingDispatch,而不是我想要的SyncSchool作业。

将映射中的SyncSchool::dispatch($school)更改为new SyncSchool($school)正确地将SyncSchool作业放在批处理中。

教训:仔细阅读文档

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67224946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档