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.*"

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

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

4年前 评论

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