이 글은 주로 PHP의 Laravel 예약 작업 일정에 대한 분석을 소개합니다. 이제 특정 참조 값을 가지고 있습니다. 필요한 친구들이 참고할 수 있습니다.
전제: 이 글은 다음과 같습니다. 이 방법은 Linux의 crontab 예약 작업을 사용하여 Laravel 예약 구현을 지원하는 것입니다(Mac에서도 마찬가지입니다).
1. 먼저 Crontab 예약 작업을 추가합니다. 간략한 소개는 다음과 같습니다.
다음 내용을 추가하려면 crontab -e 명령을 사용하세요
* * * * * /usr/local/bin/php /usr/local/var/www/projectName/artisan schedule:run >> /dev/null 2>&1
위 명령 Crontab은 Laravel의 Schedule 명령을 1분마다 조정한 후 Laravel이 작업을 판단하고 실행합니다.
참고: php 및 artisan 디렉토리에 주의하세요. 어떤 php가 php 디렉토리를 볼 수 있는지 ***** 你的命令
또한, 위 명령 앞의 5 *는 분을 나타냅니다. 각각 시간, 일, 월입니다.
Minute: 0~59의 정수, 기본값 * 및 */1은 1분을 나타냅니다.
Hour: 0부터 23까지의 정수.
Day: 1부터 31까지의 정수입니다.
월: 1에서 12 사이의 정수입니다.
요일: 0에서 7까지의 정수, 0과 7은 모두 일요일을 나타냅니다.
crontab -l 현재 예약된 작업을 나열할 수 있습니다.
2. Laravel 예약 작업을 추가합니다.
1. AppConsoleKernel 클래스에서 스케줄링 작업을 정의하세요.
<?php namespace App\Console; use Illuminate\Console\Scheduling\Schedule; use Laravel\Lumen\Console\Kernel as ConsoleKernel; use Log;class Kernel extends ConsoleKernel { /** * The Artisan commands provided by your application. * 定义Artisan命令 * @var array */ protected $commands = [ \App\Console\Commands\test::class, ]; /** * Define the application's command schedule. * 定义调度任务 * @param \Illuminate\Console\Scheduling\Schedule $schedule * @return void */ protected function schedule(Schedule $schedule) { //方法一:// $schedule->call(function () {// Log::info('任务调度');// })->everyMinute(); //方法二: $schedule->command('test')->everyMinute(); } }
위에 두 가지 구현 방법이 나와 있습니다. 방법 1은 클로저를 사용하는 것이고, 방법 2는 Artisan 명령을 사용하는 것입니다.
예약 시간은 다양합니다.
->cron('* * * * *') 사용자 정의 Cron 일정에 따라 작업 실행
->everyMinute(); 매분
->everyFiveMinutes(); 5분마다 작업 실행
->everyTenMinutes(); 10분마다 작업 실행
->everyThirtyMinutes(); 30분마다 작업
->hourly(); 매시간 작업 실행
->daily(); 매일 자정에 작업 실행
->dailyAt('13: 00'); 매일 13:00에 작업 실행
->twiceDaily(1, 13); 매일 1:00 및 13:00에 작업 실행
->weekly() ; 일주일에 한 번 작업 실행
->monthly(); 한 달에 한 번 작업 실행
추가 방법이 있으므로 http://laravelacademy.org/post/235.html을 참조하세요.
3. Artisan 명령을 정의하는 방법:
<?php namespace App\Console\Commands; use Illuminate\Console\Command; use Log;class test extends Command { /** * The console command name. * * @var string */ protected $name = 'test:putcache'; /** * The console command description. * * @var string */ protected $description = 'test controller'; /** * Execute the console command. * * @return mixed */ public function handle() { //这里做任务的具体处理,可以用模型 Log::info('任务调度'.time()); } }좋아요, 위의 작업을 실행하면 됩니다. 위 작업이 실행되지 않으면 php artisan list 명령을 사용하여 일부 오류 메시지를 인쇄할 수 있습니다. 위 내용은 모든 사람의 학습에 도움이 되기를 바랍니다. . 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트를 주목하세요! 관련 권장 사항:
Laravel 데이터베이스 테스트를 수행하는 또 다른 방법(SQLite)
#🎜 🎜## 🎜🎜#Laravel 개발 환경 배포 홈스테드 설치 및 구성 프로세스(Windows 시스템)
위 내용은 PHP의 Laravel 예약 작업 일정 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!