> PHP 프레임워크 > Laravel > 라라벨 큐를 사용하는 방법

라라벨 큐를 사용하는 방법

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2023-05-26 18:38:07
원래의
2728명이 탐색했습니다.

인터넷 산업의 지속적인 발전으로 인해 당사 웹사이트는 점점 더 복잡해지고 방문 횟수도 증가하고 있습니다. 동시성이 높은 경우, 많은 시간이 소요되는 작업을 처리하는 것은 매우 어려운 작업이므로 비즈니스가 정체되고 차단될 수 있습니다. 이 문제를 해결하기 위해 Laravel은 사용자가 정체감을 느끼지 않도록 일부 비동기 및 연기 가능한 작업을 처리하는 데 사용할 수 있는 대기열 기능을 제공합니다. 다음으로 laravel queue 사용법을 배워보겠습니다.

1. 대기열 설치

1. 대기열 패키지 설치

Laravel에서 대기열은 Laravel 대기열 작업 패키지에 배치됩니다.

composer require 조명/대기열

2 . 대기열 공급자 추가

Laravel은 데이터베이스, Redis, Beanstalkd 등을 포함한 여러 대기열 백엔드를 지원합니다. config/queue.php에서 대기열 공급자를 구성해야 합니다. 예를 들어 Redis 대기열 공급자를 사용할 수 있습니다.

'connections' => [

'redis' => [
    'driver' => 'redis',
    'connection' => 'default',
    'queue' => 'default',
    'retry_after' => 90,
    'block_for' => null,
],
로그인 후 복사

],

2. 작업 생성

대기열은 장기 실행 작업을 처리하도록 설계되었으며 이는 모든 작업 또는 주문이 될 수 있습니다. 명령줄을 사용하여 새 대기열 작업을 생성할 수 있습니다.

php artisan make:job SendEmail

생성된 대기열 작업 클래스는 app/Jobs 디렉터리에 위치합니다. 수동으로 생성된 SendEmail 작업 클래스는 기본 클래스로 보입니다.

namespace AppJobs;

use IlluminateBusQueueable;
use IlluminateContractsQueueShouldQueue;
use IlluminateFoundationBusDispatchable;
use IlluminateQueueInteractsWithQueue;
use IlluminateQueue SerializesModels;

class SendEmail은 ShouldQueue
{

use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

/**
 * Create a new job instance.
 *
 * @return void
 */
public function __construct()
{
    //
}

/**
 * Execute the job.
 *
 * @return void
 */
public function handle()
{
    //
}
로그인 후 복사

}

을 구현합니다.

us 작업의 구체적인 구현 논리는 handler() 메서드에 작성할 수 있습니다.

3. 대기열에 작업 푸시

Laravel에서는 $dispatch() 정적 메서드를 사용하여 대기열에 작업을 추가할 수 있습니다. 이 메서드는 다음과 같이 컨트롤러, 경로 또는 다른 곳에서 사용할 수 있습니다.

use AppJobsSendEmail;

SendEmail::dispatch()

또한 대기열의 지연() 및 onQueue() 메서드를 사용하여 지정할 수도 있습니다. 이름.

예를 들어 작업을 "emails"라는 대기열에 푸시하고 10초 후에 처리합니다.

SendEmail::dispatch()->onQueue('emails')->delay(now()-> ; addSeconds(10));

4. 대기열 실행

작업을 대기열에 푸시했습니다. 이제 대기열을 실행하고 작업을 처리해야 합니다. Laravel에서는 Artisan 명령을 사용하여 대기열 프로세서를 시작할 수 있습니다:

php artisan queue:work

기본적으로 대기열 프로세서는 "default"라는 대기열 공급자를 사용합니다. "--queue" 옵션을 사용하여 프로세서 처리를 위한 대기열을 설정할 수 있습니다. 예를 들어, 메일 큐로 작업하려면:

php artisan queue:work --queue=emails

사용 가능한 모든 프로세서를 사용하여 큐를 차례로 처리하려면 "--daemon" 옵션을 사용할 수 있습니다. 이렇게 하면 프로세서 하나가 죽어도 프로세서 실행이 중단되지 않습니다.

php artisan queue:work --daemon

큐 프로세서에는 다른 많은 옵션이 있습니다. php artisan queue:work --help 명령을 사용하면 모든 옵션과 관련 정보를 볼 수 있습니다.

5. 요약

이상은 라라벨 큐를 사용하는 단계입니다. 라라벨 큐를 사용하면 많은 시간이 소요되는 작업을 쉽게 처리할 수 있어 애플리케이션의 효율성과 응답 속도가 향상됩니다. 대기열에 대한 더 자세한 내용과 옵션을 알고 싶다면 공식 Laravel 문서를 확인하세요.

위 내용은 라라벨 큐를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿