laravel6의 대기열 및 작업 예약에 대한 심층적인 설명
(1) 대기열 구현
laravel에서는 이를 구현하기 위해 대기열만 조작하면 됩니다. 구현하기 전에 간단한 구성, config/ queue.php 수정에 대한 자세한 내용은 공식 문서를 확인하세요. 여기서는 자세한 내용을 설명하지 않겠습니다. <code>config/queue.php
进行修改,具体查看官方文档,这里我不进行详细说明,下面我们直接进入正题。
首先,通过执行
php artisan make:job 任务类名称
我们可以实现一个队列任务,执行该命令后,将会在app目录下生成Jobs目录并创建一个新的任务类,该任务类会自动继承IlluminateContractsQueueShouldQueue
接口,我们的队列会调用该任务类的handle方法,因此我们只需要在handle里面去实现我们具体的业务逻辑,就可以轻松的实现任务类。而此时,我们这是对我们任务类进行处理,那我们该怎么去分配任务进行处理呢?-
在laravel中,任务的分发,也只需要通过简单的已实现的方法进行任务分配,我们只需要将任务指定对应的队列进行分发处理,具体的实现方式只需要以下简单的几行代码,便可以实现任务分发。
//任务指定到对应的队列 $job = (new TestQueue())->onQueue('队列名称'); //分发任务 dispatch($job);
로그인 후 복사 实现的队列的分发之后,我们通过运行
php artisan queue:work
队列处理器,该处理器便会对分发到队列里的任务进行处理,它会一直运行直到它被手动停止或终端关闭。需要注意的是,由于队列处理器是作为一个常驻进程并且在内存中保存着已经启动的应用状态,当我们修改对应的代码时,我们需要重启队列处理器才会载入修改后的代码逻辑。所以当我们对相应的任务类进行修改时,我们需要重启以保证正确性。Supervisor 配置,这里官方文档讲得挺明白的,我就没必要在复述一次官方文档传送门
(二)任务调度
这里我直接引用官方文档的话语,简明易懂。
过去,你可能需要在服务器上为每一个调度任务去创建 Cron 入口。但是这种方式很快会变得不友好,因为这些任务调度不在源代码中,并且你每次都需要通过 SSH 链接登录到服务器中才能增加 Cron 入口。
Laravel 命令行调度器允许你在 Laravel 中对命令调度进行清晰流畅的定义。且使用这个任务调度器时,你只需要在你的服务器上创建单个 Cron 入口。你的任务调度在 app/Console/Kernel.php 的 schedule 方法中进行定义。
任务调度定义。在laravel官方文档中,我们更常用的是任务Artisan命令调度和队列调度。
//artisan命令调度 $schedule->command('emails:send Taylor --force')->daily(); //队列调度 $schedule->job(new Heartbeat)->everyFiveMinutes(); // 分发任务到「heartbeats」队列... $schedule->job(new Heartbeat, 'heartbeats')->everyFiveMinutes();
로그인 후 복사-
任务调用频率,如上步骤的
daily()
、everyFiveMinutes()
- 먼저
php artisan make:job task class name
을 실행하여 대기열 작업을 구현할 수 있습니다. 이 명령을 실행하면 Jobs 디렉터리가 생성되어 앱에 생성됩니다. 디렉토리IlluminateContractsQueueShouldQueue
인터페이스를 자동으로 상속하는 새로운 작업 클래스. 대기열은 작업 클래스의 핸들 메서드를 호출하므로 작업 클래스에서 특정 비즈니스 로직만 구현하면 됩니다. 쉽게 구현될 수 있습니다. 현재 태스크 클래스를 처리하고 있는데 처리할 태스크를 어떻게 할당해야 할까요?🎜
- 🎜laravel에서 작업 분배는 간단한 구현 방법을 통해서만 수행되어야 합니다. 특정 구현 방법은 다음과 같은 간단한 단계만 필요합니다. 코드, 작업 분산을 달성할 수 있습니다. 🎜rrreee
- 🎜큐가 배포된 후
php artisan queue:work
대기열 프로세서를 실행하여 대기열에 배포된 작업을 처리합니다. 수동으로 중지되거나 터미널이 닫힙니다. 큐 프로세서는 상주 프로세스이고 시작된 애플리케이션 상태를 메모리에 저장하므로 해당 코드를 수정할 때 수정된 코드 로직을 로드하려면 큐 프로세서를 다시 시작해야 합니다. 따라서 해당 작업 클래스를 수정할 때 정확성을 보장하기 위해 다시 시작해야 합니다. 🎜 - 🎜감독자 구성, 여기 공식 문서에 매우 명확하게 설명되어 있으므로 공식 문서 포털을 반복할 필요가 없습니다🎜
🎜과거에는 서버의 각 예약된 작업에 대해 Cron 항목을 생성해야 할 수도 있었습니다. 그러나 이러한 작업 스케줄러는 소스 코드에 없고 Cron 항목을 추가하려면 매번 SSH 링크를 통해 서버에 로그인해야 하기 때문에 이 접근 방식은 금세 불편해집니다.
Laravel 명령줄 스케줄러를 사용하면 Laravel에서 명령 스케줄링을 명확하고 원활하게 정의할 수 있습니다. 그리고 이 작업 스케줄러를 사용할 때 서버에 단일 Cron 항목만 생성하면 됩니다. 작업 일정은 app/Console/Kernel.php의 일정 방법에 정의되어 있습니다. 🎜- 🎜작업 일정 정의. 공식 라라벨 문서에서는 task Artisan 명령어 스케줄링과 큐 스케줄링을 더 일반적으로 사용합니다. 🎜rrreee
- 🎜위 단계의
daily()
,everyFiveMinutes()
등과 같은 작업 호출 빈도는 모두 호출 빈도를 제한합니다. 문자 그대로 이해하는 것은 어렵지 않습니다. 실제로는 1분에 한 번 또는 매일 호출되도록 설정되어 있습니다. 구체적인 호출은 다음과 같습니다(길이를 요약하면). 자세한 내용은 공식 문서를 확인하실 수도 있습니다. 🎜
메소드 描 설명-& gt; cron (' * * * * * *') 맞춤형 CRON 계획 실행 작업 ->everyFiveMinutes(); ->everyTenMinutes(); -> ;everyFifteenMi 견과류 (); ->everyThirtyMinutes(); ->hourly(); ->hourlyAt(17); ->daily(); ->dailyAt('13:00'); ->twiceDaily(1, 13); ->weekly(); ->weeklyOn(1, '8:00'); ->monthly(); ->monthlyOn(4, '15:00'); ->분기별(); ->연간(); ->timezone('America/New_York'); . 사실 별로 이야기할 내용은 없지만, 이 두 가지는 대개 우리 프로젝트에 있어서 매우 중요한 부분입니다. 공식 문서는 너무 번거롭고 불필요하기 때문에 일반적으로 사용되는 문서에 대해 간단히 말씀드리겠습니다. Laravel은 이러한 일반적인 작업을 캡슐화하여 많은 문제를 줄였습니다. 구현 논리를 이해하는 데 관심이 있다면 최소한 먼저 사용 방법을 알아 두십시오.(3) 요약 - 관련 권장 사항:
- 최신 5개 Laravel 비디오 튜토리얼
* * * * * cd /项目地址 && php artisan schedule:run >> /dev/null 2>&1
- 먼저
위 내용은 laravel6의 대기열 및 작업 예약에 대한 심층적인 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

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

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









이 기사는 강력한 Laravel Restful API를 구축하는 사람들을 안내합니다. 프로젝트 설정, 리소스 관리, 데이터베이스 상호 작용, 직렬화, 인증, 인증, 테스트 및 중요한 보안 모범 사례를 다룹니다. 확장 성 도전 해결

이 기사는 Laravel에서 OAUTH 2.0 인증 및 승인을 구현하는 자세한 내용입니다. 리그/OAUTH2-SERVER 또는 제공자 별 솔루션과 같은 패키지를 사용하여 데이터베이스 설정 강조, 클라이언트 등록, 인증 서버 Configu

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

이 기사는 클라우드 네이티브 환경에서 Laravel을 배포하기위한 모범 사례에 대해 설명하고 확장 성, 신뢰성 및 보안에 중점을 둡니다. 주요 문제로는 컨테이너화, 마이크로 서비스, 무국적 설계 및 최적화 전략이 포함됩니다.

이 기사에서는 Laravel에서 사용자 정의 검증 규칙을 작성하고 사용하여이를 정의하고 구현하는 단계를 제공합니다. 재사용 성과 특이성과 같은 이점을 강조하고 Laravel의 검증 시스템을 확장하는 방법을 제공합니다.

PHP 프레임 워크를 선택할 때 Laravel과 Symfony는 가장 인기 있고 널리 사용되는 옵션 중 하나입니다. 각 프레임 워크는 자체 철학, 기능 및 강점을 테이블에 제공하여 다양한 프로젝트 및 사용 사례에 적합합니다.

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

이 기사는 Laravel의 최적 파일 업로드 및 클라우드 스토리지 전략을 살펴 봅니다. 로컬 스토리지 대 클라우드 제공 업체 (AWS S3, Google Cloud, Azure, DigitalOcean), 보안 강조 (유효성 검사, 소독, HTTP) 및 성능 OPTI를 검사합니다.
