2

我尝试从控制器将新作业添加到队列中:

class SaveController extends Controller
{
public function save(Request $request, Queue $queue)
{
    $q = $queue->pushOn('getSent', new \App\Jobs\SomeJobs('hello'));
    return $q;
}
}

但我发现错误:

lumen.ERROR: exception 'Illuminate\Container\BindingResolutionException' with message 'Target [Illuminate\Queue\Queue] is not instantiable.' in /var/www/lumenlocal/lumen/vendor/illuminate/container/Container.php:785

怎么了?

4

3 回答 3

0

引自Lumen 文档

注意:如果您打算使用 Queue 外观,请务必取消注释文件中的 $app->withFacades()调用bootstrap/app.php

于 2015-05-16T15:16:31.270 回答
0

Lumen 有点棘手,因为现在支持与 Laravel 不同。你可以用。

$data = ['你好'];

队列::pushOn('getSent', '\App\Jobs\SomeJobs', $data);

这应该在作业表中创建一条记录,该记录将是:

{"job":"\App\Jobs\SomeJobs","data":['hello']} - 或类似的。

然后只需确保在调用工作进程时指定要使用的队列,在这种情况下是“getSent”

于 2015-05-17T23:47:40.860 回答
0

需要使用合同:

use Illuminate\Contracts\Queue\Queue;

https://laracasts.com/discuss/channels/lumen/add-queue-from-controller

于 2015-05-18T14:10:56.503 回答