Laravel5.5 이벤트 모니터링, 작업 스케줄링 및 대기열 분석

藏色散人
풀어 주다: 2021-06-25 10:03:24
앞으로
2266명이 탐색했습니다.

다음 튜토리얼 칼럼인laravel에서는 Laravel5.5의 이벤트 모니터링, 작업 스케줄링, 큐에 대해 소개하겠습니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!

Laravel5.5 이벤트 모니터링, 작업 스케줄링, 대기열

1. 이벤트 모니터링

Process:

Laravel5.5 이벤트 모니터링, 작업 스케줄링 및 대기열 분석

1.1 이벤트 생성

php artisan make:event UserLogin
로그인 후 복사

LoginController.php

/** * The user has been authenticated. * * @param \Illuminate\Http\Request $request * @param mixed $user * @return mixed */ protected function authenticated(Request $request, $user) { event(new UserLogin($user)); }
로그인 후 복사

1.2 생성 리스너

1.2 .1 방법 1: 수동으로 생성

php artisan make:listener EmailAdminUserLogin --event=UserLogin
로그인 후 복사

1.2.2 방법 2:다음 방법을 권장합니다:자동으로 이벤트 및 리스너 생성

//应用程序的事件监听器映射 class EventServiceProvider extends ServiceProvider { /** * The event listener mappings for the application. * * @var array */ protected $listen = [ 'App\Events\UserLogin' => [ 'App\Listeners\UserLogin\EmailAdminUserLogin', 'App\Listeners\UserLogin\TraceUser', 'App\Listeners\UserLogin\AddUserLoginCounter', ], 'App\Events\UserLogout' => [ 'App\Listeners\UserLogout\EmailAdminUserLogout', 'App\Listeners\UserLogout\TraceUser', ], ]; /** * Register any events for your application. * * @return void */ public function boot() { parent::boot(); Event::listen('event.*', function ($eventName, array $data) { // }); } }
로그인 후 복사

이벤트 및 리스너 생성:php artisan event:generatephp artisan event:generate

二、Laravel 的任务调度(计划任务)功能 Task Scheduling

2.1 call方式

protected function schedule(Schedule $schedule) { $schedule->call(function (){ \Log::info('我是call方法实现的定时任务'); })->everyMinute(); }
로그인 후 복사

执行:php artisan schedule:run

2.2 crontab方式

Laravel5.5 이벤트 모니터링, 작업 스케줄링 및 대기열 분석

2.2 command方式

生成命令:php artisan make:command SayHello


         
로그인 후 복사

Kernel.php

protected function schedule(Schedule $schedule) { $schedule->command('message:hi') ->everyMinute(); }
로그인 후 복사

执行:php artisan schedule:run

三、队列任务

3.1 驱动的必要设置

QUEUE_DRIVER=database

如:数据库驱动

php artisan queue:table php artisan migrate
로그인 후 복사

3.2 创建任务

生成任务类:

php artisan make:job SendReminderEmail
로그인 후 복사
class SendReminderEmail implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; public $user; /** * Create a new job instance. * * @param User $user */ public function __construct(User $user) { $this->user = $user; } /** * Execute the job. * * @return void */ public function handle() { \Log::info('send reminder email to user' . $this->user->email); } }
로그인 후 복사

3.3 分发任务

你写好任务类后,就能通过dispatch辅助函数来分发它了。唯一需要传递给dispatch的参数是这个任务类的实例:
利用模型工厂生成30个用户:

Laravel5.5 이벤트 모니터링, 작업 스케줄링 및 대기열 분석

public function store(Request $request) { $users = User::where('id','>',24)->get(); foreach ($users as $user){ $this->dispatch(new SendReminderEmail($user)); } return 'Done'; }
로그인 후 복사
Route::get('/job', 'UserController@store');
로그인 후 복사

数据库表jobs生成5个队列任务:

Laravel5.5 이벤트 모니터링, 작업 스케줄링 및 대기열 분석

3.4 运行队列处理器

php artisan queue:work
로그인 후 복사

Tips:要注意,一旦queue:work命令开始,它将一直运行,直到你手动停止或者你关闭控制台

处理单一任务:你可以使用--once选项来指定仅对队列中的单一任务进行处理

php artisan queue:work --once
로그인 후 복사

Laravel5.5 이벤트 모니터링, 작업 스케줄링 및 대기열 분석

拓展:使用Beanstalkd管理队列,Supervisor则是用来监听队列的任务,并在队列存在任务的情况下自动帮我们去执行,免去手动敲php artisan

2. 라라벨의 작업 스케줄링(계획된 작업) 기능 Task Scheduling

2.1 call methodrrreee

Execution: php artisan Schedule:run2.2 crontab method Laravel5.5 이벤트 모니터링, 작업 스케줄링 및 대기열 분석2.2 명령 방법 명령 생성 : php artisan make:command SayHellorrreeeKernel.phprrreee실행: php artisan Schedule:run3. 3.1 드라이버에 필요한 설정 3 작업 배포 작업 클래스를 작성한 후 디스패치도우미 기능을 통해 배포할 수 있습니다. dispatch에 전달되어야 하는 유일한 매개변수는 이 작업 클래스의 인스턴스입니다.
모델 팩토리를 사용하여 30명의 사용자를 생성합니다: Laravel5.5 이벤트 모니터링, 작업 스케줄링 및 대기열 분석rrreeerrreee 데이터베이스 테이블 작업 code>5개의 대기열 생성 작업: c7d38a7878f8e3989002 265ee886da0 .png 3.4 대기열 프로세서 실행 rrreee팁: queue:work명령이 시작되면 수동으로 중지하거나 콘솔을 닫을 때까지 계속 실행된다는 점에 유의하세요. 단일 작업 처리: --once옵션을 사용하여 대기열의 단일 작업만 처리되도록 지정할 수 있습니다rrreee Laravel5.5 이벤트 모니터링, 작업 스케줄링 및 대기열 분석확장: 콩나무사용 관리 대기열인 Supervisor는 대기열의 작업을 모니터링하는 데 사용되며 대기열에 작업이 있을 때 자동으로 해당 작업을 실행하도록 도와주므로 수동으로 php artisan을 입력할 필요가 없습니다. 대기열이 올바르게 실행될 수 있는지 확인하는 명령 "관련 권장 사항: 최신 5개 Laravel 비디오 튜토리얼"

위 내용은 Laravel5.5 이벤트 모니터링, 작업 스케줄링 및 대기열 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:segmentfault.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!