laravel队列基本使用
laravel队列基本使用
一、总结
一句话总结:
laravel任务操作异常简单,php artisan make:job LogJob【创建任务类】,控制器中LogJob::dispatch($data)【分发任务】即可
a、php artisan make:job LogJob【创建任务类】:在【handle方法】中指定任务的具体执行逻辑
b、控制器中LogJob::dispatch($data)【分发任务】
二、laravel队列基本使用
1、在配置文件.env中查看队列连接
QUEUE_CONNECTION=sync
2、在config/queue.php中查看对应queue连接的信息
3、创建任务类
php artisan make:job LogJob
会在app目录下创建jobs目录
4、完善LogJob类
构造函数中传递数据,handle方法中执行操作(这里的操作是写入日志)
<?php namespace App\Jobs; use Illuminate\Bus\Queueable; use Illuminate\Queue\SerializesModels; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Support\Facades\Log; class LogJob implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; //fry自定义的数据 public $data; /** * Create a new job instance. * * @return void */ public function __construct($data) { // $this->data=$data; } /** * Execute the job. * * @return void */ public function handle() { // Log::info('fry_job_test',$this->data); } }
5、在控制器中分发任务
<?php namespace App\Http\Controllers\JobTest; use App\Jobs\LogJob; use Illuminate\Http\Request; use App\Http\Controllers\Controller; class JobController extends Controller { // public function index(){ //分发任务 $data=[ 'name'=>'fry'.mt_rand(1,100), 'email'=>'fry@qq.com', ]; dump($data); //分发日志 LogJob::dispatch($data); } }
6、任务运行后的结果显示
日志被成功写入,说明任务运行成功