You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Tinker中向指定队列分发Laravel任务?

解决Laravel Tinker分发任务到指定队列的问题

错误原因

你之前的写法逻辑有误:\Bus::dispatch()执行后返回的是任务ID(字符串类型),而onQueue()是任务实例的专属方法,所以链式调用会触发「在字符串上调用成员函数」的错误。必须先给任务实例指定队列,再执行分发操作。

正确写法

以下三种方式都可以在Tinker中将任务分发到long-running-queue:

  1. 分步创建任务并设置队列
$job = new \App\Jobs\MyJob('MyArg');
$job->onQueue('long-running-queue');
\Bus::dispatch($job);
  1. 使用任务类的静态dispatch方法链式调用
\App\Jobs\MyJob::dispatch('MyArg')->onQueue('long-running-queue');
  1. 一行代码完成(用括号包裹实例初始化和队列设置)
\Bus::dispatch((new \App\Jobs\MyJob('MyArg'))->onQueue('long-running-queue'));

验证方法

任务分发后,可以通过Horizon面板查看long-running-queue的待处理任务,或者执行Redis命令确认:

redis-cli KEYS "laravel:queues:long-running-queue*"

内容的提问来源于stack exchange,提问作者Andrew Waegel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 05:22:01