[英]Laravel 5.7 jobs queue not running async
我正在尝试使用Laravel 5.7 作业队列在数据库中进行一些插入/更新,并且可能出错了,因为调用该作业时似乎阻塞了我的应用程序,因此,它不是异步运行。 我的代码具有以下结构:
.env
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
queue.php
'default' => env('QUEUE_CONNECTION', 'sync'),
'connections' => [
'sync' => [
'driver' => 'sync',
],
'database' => [
'driver' => 'database',
'table' => 'jobs',
'queue' => 'default',
'retry_after' => 90,
],
job_caller.php
method_name(){
InsereProspeccao::dispatch($path, $evento, $equipe)->onQueue('jobs');
retur some_msg_to_user;
}
job_name.php
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
class InsereProspeccao implements ShouldQueue{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
private $path = '';
private $evento = '';
private $equipe = '';
public function __construct($path, $evento, $equipe){
$this->path = $path;
$this->evento = $evento;
$this->equipe = $equipe;
}
public function handle(){
//all program logic
//access DB for insert/update
}
}
Obs .:我正在阅读文档,但是我无法找到会发生什么的错误!
您正在使用QUEUE_CONNECTION=sync
,它基本上具有同步行为。
请按照以下步骤操作:
运行php artisan queue:table
,它将自动创建jobs
表的迁移
运行php artisan migrate
migration,它将通过运行迁移创建表
更改QUEUE_CONNECTION=database
,并按照默认情况下,它会自动采取jobs
表来管理队列。
运行php artisan config:clear
清除应用程序配置缓存
那应该很好。 查看文档以获取更多帮助。
试试这个: QUEUE_CONNECTION=database
,应该很好。
您还可以设置rabbitmq或其他驱动程序,因为它们的实现要先进得多,并且可以进行更多生产。 但是数据库是一个好的开始。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.