다음은 Laravel튜토리얼 칼럼에 나온 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가 php 디렉토리를 볼 수 있는 php 및 artisan 디렉토리에 주의하세요
***** 你的命令
또한 위 명령 앞에 있는 5 *는 각각 분, 시간, 일, 월 및 주를 나타냅니다. .
분: 0~59의 정수, 기본값 * 및 */1은 1분을 나타냅니다.
시간: 0~23의 정수.
일: 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(); 每五分钟运行一次任务 ->everyTenMinutes(); 每十分钟运行一次任务 ->everyThirtyMinutes(); 每三十分钟运行一次任务 ->hourly(); 每小时运行一次任务 ->daily(); 每天凌晨零点运行任务 ->dailyAt(‘13:00’); 每天13:00运行任务 ->twiceDaily(1, 13); 每天1:00 & 13:00运行任务 ->weekly(); 每周运行一次任务 ->monthly(); 每月运行一次任务
추가 방법이 있습니다. 다음을 참조하세요. http://laravelacademy.org/post/235.html
방법 2로 계속 진행:
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 명령을 사용하여 일부 오류 메시지를 인쇄할 수 있습니다.
더 많은 라라벨 관련 기술 기사를 보려면 laravel 칼럼을 방문하세요!
위 내용은 PHP Laravel 예정된 작업 일정 [건조 정보]의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!