Lumen 如何使用 schedule job 中 dispatch on queue?

lumen中使用schedule报错:

In Schedule.php line 87:


Call to a member function onQueue() on string

请问该如何解决?

lumen 的文档当中没有涉及任务调度的相关问题,lumen和Laravel的schedule不太一样,有点无从下手

protected function schedule(Schedule $schedule)
 {
        $schedule->job(new XXXJob); //XXXJob 继承 abstract class Job implements ShouldQueue
}

job的方法,尝试改用2),虽然可以了,但是感觉不太靠谱啊

public function job($job, $queue = null)
    {
        return $this->call(function () use ($job, $queue) {
            $job = is_string($job) ? resolve($job) : $job;

            if ($job instanceof ShouldQueue) {
                //dispatch($job)->onQueue($queue);//1)
                dispatch($job->onQueue($queue));//2)
            } else {
                dispatch_now($job);
            }
        })->name(is_string($job) ? $job : get_class($job));
    }

PS:版本: "laravel/lumen-framework": "5.5.*"

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 1

楼主后来找到解决方案了么,修改源码明显是不靠谱的做法吧

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!