Laravel队列任务
先新建一个job
php artisan make:job Test
<?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; class Test implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; protected $data; public $tries = 10; /** * Create a new job instance. * * @return void */ public function __construct($data) { $this->data=$data; } /** * Execute the job. * * @return void */ public function handle() { $id = $this->data->data; var_dump($id); } public function failed($exception) //任务失败之后执行的内容 { $exception->getMessage(); var_dump($exception); } }
Controller文件中这样写
use App\Jobs\Test;
$job = new Test($data); $job = dispatch(new Test($data))->onQueue('test');
然后在服务器网站目录中运行一下命令:
command=php artisan queue:listen --queue=test --timeout=300
当然实际生产环境中,可以用Supervisor守护进程来守护上面的操作