laravel에서 큐는 작업이 제한된 선형 테이블입니다. 테이블의 프런트 엔드(큐 헤드)에서만 삭제 작업과 큐를 통한 테이블의 백 엔드(큐 테일)에서의 삽입 작업만 허용됩니다. , 개발 사용자는 시간이 많이 걸리는 작업의 처리를 나중으로 연기할 수 있으며, 이는 웹 요청의 응답 속도를 크게 향상시킬 수 있습니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, Laravel 6 버전, Dell G3 컴퓨터.
laravel에서 대기열 사용
1. 대기열이란 무엇입니까
대기열은 작업이 제한된 선형 테이블입니다. 특별한 점은 프런트 엔드에서만 삭제 작업을 허용한다는 것입니다. 테이블 및 삽입 작업은 테이블의 백엔드에서 수행됩니다. 삽입 작업을 수행하는 끝을 큐의 꼬리라고 하고 삭제 작업을 수행하는 끝을 큐의 헤드라고 합니다.
큐를 사용하면 시간이 많이 걸리는 작업(예: 이메일 보내기)의 처리를 나중에 연기할 수 있습니다. 시간이 많이 걸리는 이러한 작업을 지연하면 웹 요청 응답 속도가 크게 향상될 수 있습니다.
2. 장점
메시지 대기열은 시스템을 분리하고 응답 속도를 향상시키며 시스템 기능은 내부로 집계되고 외부로 공개됩니다.
비동기: 메시지 대기열은 기능적 결합을 줄이고 개발 효율성을 향상시키기 위해 기능을 제거합니다.
피크 감소: 메시지 큐는 다운스트림 소비자의 안정적인 작동을 보장하기 위해 피크를 줄이고 전류를 제한할 수 있습니다.
queue 구성 파일 config/queue.php에 저장됩니다. 이 파일에서는 데이터베이스, Beanstalkd, Amazon SQS, Redis 및 동기화 드라이버(동기화 - 로컬 사용)를 포함하는 프레임워크에 포함된 각 대기열 드라이버에 대한 연결 구성을 찾을 수 있습니다. 여기서는 Redis가 드라이버로 사용되며 Redis 및 관련 확장 프로그램을 설치해야 합니다.
4. 작업 대기열에 무언가를 넣어야 하는데 이를 작업이라고 부를 수 있습니다. Laravel 프레임워크에서 작업을 생성하면 다음 명령이 제공됩니다: php artisan make:job TestJob
TestJob.php
namespace App\Jobs;use Illuminate\Bus\Queueable;use Illuminate\Contracts\Queue\ShouldBeUnique;use Illuminate\Contracts\Queue\ShouldQueue;use Illuminate\Foundation\Bus\Dispatchable;use Illuminate\Queue\InteractsWithQueue;use Illuminate\Queue\SerializesModels;use Illuminate\Support\Facades\DB;use Symfony\Polyfill\Intl\Idn\Info;class TestJob implements ShouldQueue{ use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; /** * Create a new job instance. * * @return void */ public function __construct() { // } /** * Execute the job. * * @return void */ public function handle() {// \Log::info('hhh'); DB::connection('test') ->table('master') ->insert([ 'name'=>'小白', 'email'=>'123@qq.com' ]); }}
5. Distribution
작업 클래스가 작성되면 작업 자체의 디스패치 메서드를 사용할 수 있습니다. 그것을 파견하기 위해. 디스패치 메서드에 전달된 매개변수는 작업 생성자에 전달됩니다. :Onqueue: 대기열 지정; Dlay: 지연 대기열; DispatchNow: 동기식 스케줄링; Consumption
6. 새로 푸시된 작업을 대기열에 처리합니다. Artisan 명령어 queue:work로 큐 프로세서를 시작하세요. queue:work 명령이 시작되면 수동으로 중지하거나 터미널을 닫을 때까지 계속 실행됩니다.
php artisan queue:work
php artisan queue:work --once 매개변수 추가, 소비 대기열을 지정합니다
#在路由中简单调用 Route::get('queue',function(){ \App\Jobs\TestJob::dispatch(); // \App\Jobs\TestJob::dispatch()->onQueue('qq'); });
두 개의 새로운 데이터가 데이터베이스에 추가되고 redis의 데이터가 소비된 것을 볼 수 있습니다
라우팅을 다시 실행합니다
7. 이벤트 큐
큐는 일반적으로 지연된 작업을 처리하는 데 사용되며 이벤트는 비즈니스 로직에 의해 처리됩니다. Laravel의 이벤트 트리거는 비동기식 비즈니스 처리를 위해 대기열에 배포되므로 사용자에게 프롬프트 메시지를 보내기 전에 실시간으로 실행 결과를 기다리지 않고 빠르게 응답할 수 있습니다.
이벤트 및 리스너 생성
#消费qq队列 php artisan queue:work --queue=qq
appprovidersEventServiceProvider.php
TestListener.phpphp artisan make:event TestEvent
php artisan make:listener TestListener
경로 수정namespace App\Listeners;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Support\Facades\DB;
class TestListener implements ShouldQueue
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Handle the event.
*
* @param object $event
* @return void
*/
public function handle()
{
DB::connection('test')
->table('master')
->insert([
'name'=>'小黑',
'email'=>'234@qq.com'
]);
}
}
경로 실행
소비 대기열
Route::get('queue',function(){ //\App\Jobs\TestJob::dispatch(); //指定队列名称 //\App\Jobs\TestJob::dispatch()->onQueue('qq'); return event(new \App\Events\TestEvent()); });
【관련 추천: laravel 비디오 튜토리얼】
위 내용은 라라벨 큐란?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

React, vue, andangularcanbeintegratedwithlaravelbyfollowspecificsetupsteps.1) forreact : installEactusingLaravelui, setupcomponentsinApp.js.2) Forvue : Uselaravel'sbuilt-Invuesupport, configureinApt.3)

taskManagementToolsEnsentialForeMoteProjectManagementByPirizingTaskSandTrackingProgress.1) USETOOLSLIKETRELLOANATOSETPRIORITIESWITHLABELSORTAGS.2) EmployToolslikeJiraanddonday.comforvisualTrackingWithGantTchartSandprogressbars.3) k

Laravel10EnhancesPerformancetHroughseveralKeyFeatures.1) ItinTroduceSqueryBuilderCachingTucedAtabaseload.2) ITOPTIMIZESELOQUENTMODELLOADINGWITHLAZYLOWNEDPROXIES.3) ITIMPROVESTINGWITHANEWCACHINGSYSTEM.4) ITENHANCES WITHENTEMPHANCES BLOWTETETEMPLOTETEMPHENCESTEMPHENTSE

최고의 풀 스택 Laravel 애플리케이션 배포 전략에는 다음이 포함됩니다. 1. 제로 다운 타임 배포, 2. 청록색 배포, 3. 연속 배포 및 4. Canary Release. 1. 제로 다운 타임 배포는 Envoy 또는 배치자를 사용하여 배포 프로세스를 자동화하여 업데이트 될 때 애플리케이션을 사용할 수 있도록합니다. 2. Blue 및 Green Deployment는 두 가지 환경을 유지하여 다운 타임 배포를 가능하게하며 빠른 롤백을 허용합니다. 3. 지속적인 배포는 githubactions 또는 gitlabci/cd를 통해 전체 배포 프로세스를 자동화합니다. 4. Canary는 NGINX 구성을 통해 출시되어 성능 최적화와 빠른 롤백을 보장하기 위해 사용자에게 새 버전을 점차 홍보합니다.

ToscalealaravelApplicationeficationfictically, Focusondatabasesharding, 캐싱, 하중 발행 및 Microservices.1) 구현 대자 방당 분배 된 분산 된 타타 이탈 라제스 퍼포먼스

TovercomeCommunicationBarriersindistributedTeams, 사용 : 1) videocallsforface-to-faceintercation, 2) setClearResponsetImeexpectations, 3) ChooseAppropriateCommunicationTools, 4) CreateAteAmcommunicationGuide, 및 5) spuctionPersonalboundIVestOverventBurnout

laravelbladeenhancesfrontendtemplatinginfull-stackprojectsbyofferingcleansyntaxandpowerfulfeatures.1) itallowsforeasyvaribledisplayandcontrolstructures.2) bladesupportscreatingAndAndErscreatingCreatingScreatingAndErsingComponents, aidingininagingComplexUis.3) iteffort handleslyous

laravelisidealforfull-stackapplicationsduetoitselegantsyntax, 포괄적 인 Cosystem 및 powerfulfeatures.1) audeeloquentormforintucive backenddatamanipulation, butavoidn 1queryisss.2) Employblatingforcleanfrontendviews, beencautiousofoversing@i


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기