laravel 队列的简单理解和使用
程序员文章站
2022-06-15 17:18:02
...
laravel 队列是怎样理解的呢,其实 laravel 队列有同步还有异步,在实际开发过程中可以根据实际情况进行开发!简单点理解就是,商品下单后,半个小时内没有付款,这时候就可以用到 laravel 的队列了
现在我们先来用一下数据库队列
使用数据库队列,依次以下两条命令,生成所需要的数据表
php artisan queue:table
php artisan migrate
运行一下以下命令,生成一个队列文件
php artisan make:job TestQueue
会自动生成 app/Jobs/TestQueue.php 文件
接着修改一下 app/Jobs/TestQueue.php 文件
use App\Models\TestModel;
.
.
.
/**
* Create a new job instance.
*
* @return void
*/
public function __construct(TestModel $testModel)
{
$this -> model = $testModel;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
// 修改用户手机号码
$this -> model -> phone = 188888888888;
$this -> model -> save();
}
接着编写接口,调用队列
/**
* @param Request $request
* @param TestModel $testModel
*/
public function store(Request $request,TestModel $testModel)
{
$testModel -> username = '用户_' . time();
$testModel -> save();
// 调用队列 并且10秒钟后执行
TestQueue::dispatch($testModel) -> delay(now() -> addSecond(10));
}
修改 .env 文件中的 QUEUE_CONNECTION 改成 database
QUEUE_CONNECTION=database
重启一下队列 否则更改的信息不会生效
php artisan queue:restart
开启队列监听
php artisan queue:work