1. laravel任务队列使用
1.1. 创建任务队列处理的方法
<?php
namespace App\Jobs;
use App\Jobs\Job;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Bus\SelfHandling;
use Illuminate\Contracts\Queue\ShouldQueue;
class ClassName extends Job implements SelfHandling, ShouldQueue
{
use InteractsWithQueue, SerializesModels;
private $Data;
public function __construct($data)
{
$this->Data = $data;
}
public function handle()
{
dump($this->Data);
}
}
1.2. 在控制器中推送任务到指定队列
$AsynData = [1,2,3];
$job = (new JobsName($AsynData))->onQueue('listen_asyn');
try{
$this->dispatch($job);
}catch (\Exception $e){
dump($e);
}
1.3. Command 中使用 use DispatchesJobs;
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Foundation\Bus\DispatchesJobs;
class CommandName extends Command
{
use DispatchesJobs;
protected $signature = 'test:one';
protected $description = 'desc';
public function __construct()
{
parent::__construct();
}
public function handle()
{
$AsynData = [4,5,6];
$job = (new JobsName($AsynData))->onQueue('listen_asyn');
try{
$this->dispatch($job);
}catch (\Exception $e){
dump($e);
}
}
1.4. 队列监听指定队列
php artisan queue:work --queue=listen_asyn --daemon
php artisan queue:work --queue=listen_asyn --daemon