이 글은 laravel 관련 지식을 제공합니다. 주로 Laravel 큐를 소개하고, 어떤 상황에서 큐를 사용해야 하는지, 큐 저장소 구성 및 기타 관련 문제를 다루는 내용이 도움이 되기를 바랍니다.
【관련 추천: laravel 학습 튜토리얼】
이 기사에서는 Laravel에서 큐를 사용하는 방법을 소개하고 큐가 사용되는 이유를 이해합니다.
파일을 업로드한 후 일부 형식 변환을 수행하는 등 시간이 많이 걸립니다.
문자를 보내는 등 전송률을 보장해야 하는 경우 타인의 API를 호출해야 하기 때문에 항상 실패할 가능성이 있으므로 전송을 보장하기 위해서는 재시도가 필수적입니다.
사용 프로세스 기록:
큐 구성 파일은 config/queue.php에 저장됩니다. 기본값은 동기화 처리입니다. 여기에서 사용 방법을 선택할 수 있습니다. 다음과 같습니다.
Database
데이터 테이블 스토리지 작업을 생성하고 artisan 명령을 실행한 후 데이터 마이그레이션을 실행합니다.
php artisan queue:table php artisan migrate
Redis
Redis 큐 드라이버를 사용하려면 구성 파일 config/에서 Redis 데이터베이스 연결을 구성해야 합니다. 데이터베이스.php.
Redis 대기열 연결이 Redis 클러스터를 사용하는 경우 대기열 이름에 키 해시 태그가 포함되어야 합니다. 이는 특정 대기열의 모든 Redis 키가 동일한 해시에 배치되도록 하기 위한 것입니다:
'redis' => [ 'driver' => 'redis', 'connection' => 'default', 'queue' => 'default', 'retry_after' => 90, ],
대기열의 작업 클래스는 app/Jobs/ 디렉터리에 있습니다
php artisan make: job SaveBusLine
다음과 같이 파일을 수정합니다.
namespace App\Jobs; use App\Http\Repository\BusRepository; use Illuminate\Bus\Queueable; use Illuminate\Queue\SerializesModels; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; class SaveBusLine implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; /** * 任务最大尝试次数。 * * @var int */ public $tries = 3; /** * 任务运行的超时时间。 * * @var int */ public $timeout = 60; private $datum; /** * Create a new job instance. * @param array|object $datum * * @return void */ public function __construct($datum) { $this->datum = $datum; } /** * Execute the job. * * @return void */ public function handle() { BusRepository::getInstent()->updateBusLine($this->datum); } }
컨트롤러 또는 웨어하우스에서 대기열 메소드를 호출합니다:
use App\Jobs\SaveBusLine; use Carbon\Carbon; /***************** 队列操作 start *******************/ SaveBusLine::dispatch($arrayData)->delay(Carbon::now()->addMinute(1)); /***************** 队列操作 end *******************/
php artisan queue:work
Supervisor queue:listen 또는 queue:work 명령이 실패한 후 자동으로 다시 시작하는 Linux 운영 체제의 프로세스 모니터링 소프트웨어입니다. Ubuntu에 Supervisor를 설치하려면 다음 명령을 사용할 수 있습니다:
sudo apt-get install supervisor
Supervisor 구성
Supervisor 구성 파일은 일반적으로 /etc/supervisor/conf.d 디렉터리에 있습니다. 이 디렉터리에서는 감독자에게 프로세스를 모니터링하는 방법을 알려주는 구성 파일을 원하는 만큼 생성할 수 있습니다. 예를 들어, queue:work 프로세스를 시작하고 모니터링하기 위해 laravel-worker.conf를 생성합니다.
[program:laravel-worker] process_name=%(program_name)s_%(process_num)02d command=php ~/laravel/artisan queue:work redis --sleep=3 --tries=3 autostart=true autorestart=true user=lisgroup numprocs=8 redirect_stderr=true stdout_logfile=/home/lisgroup/logs/worker.log
sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start laravel-worker:*
php artisan queue:failed-table php artisan migrate
php artisan queue:work redis --tries=3
위 내용은 Laravel 큐의 간단한 사용을 설명하는 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!