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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Laravel의 인기에는 단순화 된 개발 프로세스, 쾌적한 개발 환경 및 풍부한 기능이 포함됩니다. 1) PHP의 유연성을 결합하여 Rubyonrails의 설계 철학을 흡수합니다. 2) 개발 효율성을 향상시키기 위해 Eloquentorm, Blade Template Engine 등과 같은 도구를 제공하십시오. 3) MVC 아키텍처 및 종속성 주입 메커니즘은 코드를보다 모듈화적이고 테스트 가능하게 만듭니다. 4) 캐싱 시스템 및 모범 사례와 같은 강력한 디버깅 도구 및 성능 최적화 방법을 제공합니다.

Django와 Laravel은 모두 풀 스택 프레임 워크입니다. Django는 Python 개발자 및 복잡한 비즈니스 논리에 적합한 반면 Laravel은 PHP 개발자 및 우아한 구문에 적합합니다. 1. Django는 파이썬을 기반으로하며 빠른 개발 및 높은 동시성에 적합한 "배터리 완성"철학을 따릅니다. 2. Laravel은 PHP를 기반으로하며 개발자 경험을 강조하며 중소형 프로젝트에 적합합니다.

Laravel은 PHP 기반 프레임 워크이기 때문에 PHP와 Laravel은 직접 비교할 수 없습니다. 1.PHP는 소규모 프로젝트 또는 빠른 프로토 타이핑에 적합하고 간단하고 직접적이기 때문에 적합합니다. 2. Laravel은 대규모 프로젝트 또는 효율적인 개발에 적합하지만 풍부한 기능과 도구를 제공하지만 가파른 학습 곡선을 가지고 있으며 순수한 PHP만큼 좋지 않을 수 있습니다.

laravelisabackendframeworkbuiltonphp, 디자인 된 forwebapplicationdevelopment.itfocusesonserver-sidelogic, databasemanagement, andapplicationtructure, and canbeintegratedwithfrontendechnologies likevue.jsorreactforfull-stackdevelopment.

이 기사는 Laravel에서 사용자 정의 블레이드 지시문을 만들고 사용하여 템플릿을 향상시키는 것에 대해 설명합니다. 지침 정의, 템플릿에서이를 사용하고 대규모 프로젝트에서 관리하고 개선 된 코드 재사용 성 및 R과 같은 이점을 강조합니다.

이 기사는 구성 요소를 사용하여 Laravel에서 재사용 가능한 UI 요소를 작성하고 사용자 정의하여 조직을위한 모범 사례를 제공하고 패키지 강화를 제안합니다.

이 기사는 Laravel의 라우팅을 사용하여 SEO 친화적 인 URL을 생성, 모범 사례, 표준 URL 및 SEO 최적화 도구를 다루는 것에 대해 설명합니다.

Laravel의 Artisan Console은 코드 생성, 마이그레이션 실행 및 스케줄링과 같은 작업을 자동화합니다. 주요 명령에는 Make : Controller, Migrate 및 DB : SEED가 포함됩니다. 특정 요구에 대해 사용자 정의 명령을 작성할 수 있으며 워크 플로 효율 향상.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

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

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.
