流明框架 - 从控制器添加队列

时间:2015-05-16 00:02:30

标签: php laravel lumen

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

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

怎么了?

3 个答案:

答案 0 :(得分:0)

引自Lumen docs

  

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

答案 1 :(得分:0)

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

$ data = [' hello'];

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

这应该在jobs表中创建一条记录:

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

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

答案 2 :(得分:0)

需要使用合同:

use Illuminate\Contracts\Queue\Queue;

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