큐는 웹 개발에서 중요한 역할을하는 일반적인 비동기 처리 메커니즘입니다. Laravel Framework는 강력한 대기열 기능을 제공하며, 이는 이메일 전송, 보고서 생성 및 빅 데이터 처리와 같은 다양한 배경 작업을 쉽게 처리 할 수 있습니다. 이 기사는 큐 구성, 작업 정의 및 실행을 포함하여 Laravel 프레임 워크에서 큐 기능을 사용하는 방법을 자세히 소개하고 해당 코드 예제를 제공합니다.
Laravel 프레임 워크에서 큐 구성은 매우 간단합니다. 먼저 구성 파일 구성/queue.php를 열고 큐 드라이브와 해당 연결 매개 변수를 설정하십시오. Laravel은 데이터베이스, Redis, Beanstalkd 등과 같은 다양한 큐 드라이브를 지원합니다. 다음 예제는 데이터베이스 드라이브를 예를 들어 사용하여 설명합니다.
<span class="fun">'connection'=> [ 'database'=> [ 'driver'=> 'database', 'table'=> 'jobs', 'queue'=> 'default', 'retry_after'=> 90,],],</span>
위 구성에서 드라이버는 큐 드라이버가 데이터베이스 드라이버임을 지정하고 테이블은 큐 작업의 데이터 테이블 이름을 지정하고, 큐는 기본 대기열의 이름을 지정하고 retry_after 작업 실행이 실패한 후 RETRY_AFTER 설정을 설정합니다.
Laravel 프레임 워크에서 큐 작업 (JOBS)은 클래스에서 정의되며 일반적으로 앱/작업 디렉토리에 저장됩니다. 우리는 메일을 보내기위한 간단한 대기열 작업을 만듭니다.
먼저 Artisan 명령을 사용하여 큐 작업 템플릿을 생성하십시오.
<span class="fun">PHP Artisan Make : Job SendeMailjob</span>
세대가 성공한 후에는 SendEmailJob이라는 클래스 파일이 앱/작업 디렉토리에서 생성됩니다. 이 파일을 열면 코드는 다음과 같습니다.
<span class="fun">네임 스페이스 appjobs; IlluminateBusqueuable을 사용하십시오. Illuminatecontractsqueueshouldqueue를 사용하십시오. IlluminateFoundationBusdisPatchable을 사용하십시오. IlluminateQueueInteractswithqueue를 사용하십시오. IlluminateQueueserializesmodels를 사용하십시오. 클래스 SendEmailJob는 Distqueue {Dispatchable, Interactswithqueue, Queueable, SerializesModels 사용을 구현합니다. public function __construct () {} public function handle () {// 이메일 전송을위한 논리 코드}}}</span>
이 클래스에서는 이메일 보내기위한 논리 코드를 정의 할 수 있습니다. 대기열 작업이 비동기 적으로 실행되기 때문에 Thiltqueue 인터페이스를 클래스로 구현해야합니다. 동시에, 다른 특징 (특성) 파견 가능, 상호 작용, 대기열 및 시리얼 화 모델은 큐 작업 및 객체 직렬화를 지원합니다.
Laravel 프레임 워크에서는 디스패치 함수를 호출하여 작업을 수행합니다. 다음은 SendEmailJob 작업을 수행하기위한 샘플 코드입니다.
<span class="fun">AppJobsSendEmailjob 사용; Dispatch (새로운 sendemailjob ());</span>
위의 코드는 SendEmailJob 작업을 기본 대기열에 추가합니다. 큐 이름을 지정하려면 Onqueue 메소드를 사용할 수 있습니다.
<span class="fun">AppJobsSendEmailjob 사용; Dispatch ((새로운 sendemailjob ())-> onqueue ( 'emails'));</span>
작업을 지연시키려면 지연 방법을 사용할 수 있습니다.
<span class="fun">AppJobsSendEmailjob 사용; $ job = (새로운 sendemailjob ())-> 지연 (Carbon :: now ()-> addminutes (10)); 파견 ($ job);</span>
Laravel 프레임 워크에서 큐 작업은 동기 실행과 비동기 실행의 두 가지 방식으로 실행될 수 있습니다.
동기 실행은 큐 드라이버가 처리하지 않고 현재 요청에서 즉시 실행되는 작업을 말합니다. 구성 파일 구성/queue.php에서 기본 큐 드라이브를 "동기화"로 설정합니다.
<span class="fun">'default'=> env ( 'queue_driver', 'sync'),</span>
이 시점에서 작업은 현재 요청에서 즉시 실행됩니다.
비동기 실행은 큐 드라이버가 처리하고 실행하는 작업을 나타냅니다. config/queue.php에서는 기본 큐 드라이브를 "데이터베이스"와 같은 다른 드라이브로 설정할 수 있습니다.
<span class="fun">'default'=> env ( 'queue_driver', 'database'),</span>
그런 다음 다음 명령을 사용하여 큐 작업을 듣고 실행하십시오.
<span class="fun">PHP 장인 대기열 : 작업</span>
이 시점에서 작업은 대기열에 추가되고 대기열 : Work 명령에 의해 듣고 실행됩니다.
위의 단계를 통해 Laravel 프레임 워크에서 큐 기능을 구현하고 예제로 이메일을 보내는 작업과 함께 해당 코드 예제를 제공 할 수 있습니다. 큐 기능은 개발자가 배경 작업을 더 잘 처리하고 시스템의 동시성 및 응답 속도를 향상시키는 데 도움이 될 수 있습니다. 실제 개발에서 다른 기능과 타사 서비스를 결합하여보다 효율적인 기능을 달성 할 수 있습니다. Laravel 프레임 워크를 사용할 때이 기사가 도움이되기를 바랍니다.