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

Lumen framework - add Queue from controller

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

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

怎么了?

引自Lumen docs

Note: If you intend to use the Queue facade, be sure to uncomment the $app->withFacades() call in your bootstrap/app.php file.

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

$数据=['hello'];

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

这应该在作业 table 中创建一条记录,即:

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

然后确保在调用工作进程时指定要使用的队列,在本例中为 'getSent'

需要使用合同:

use Illuminate\Contracts\Queue\Queue;

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