>PHP 프레임워크 >Laravel >PHP Laravel 예정된 작업 일정 [건조 정보]

PHP Laravel 예정된 작업 일정 [건조 정보]

藏色散人
藏色散人앞으로
2020-06-23 13:43:305348검색

다음은 Laravel튜토리얼 칼럼에 나온 PHP 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

그림과 같이:

PHP Laravel 예정된 작업 일정 [건조 정보]

위 명령은 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&#39;s command schedule.
     * 定义调度任务
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        //方法一:
//            $schedule->call(function () {
//                Log::info(&#39;任务调度&#39;);
//            })->everyMinute();
        //方法二:
        $schedule->command(&#39;test&#39;)->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 = &#39;test:putcache&#39;;
    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = &#39;test controller&#39;;
    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
            //这里做任务的具体处理,可以用模型
            Log::info(&#39;任务调度&#39;.time());
    }
}

좋습니다. 위 명령을 사용하여 예약된 작업을 실행할 수 있습니다. 위 작업이 실행되지 않으면 php artisan list 명령을 사용하여 일부 오류 메시지를 인쇄할 수 있습니다.

더 많은 라라벨 관련 기술 기사를 보려면 laravel 칼럼을 방문하세요!

위 내용은 PHP Laravel 예정된 작업 일정 [건조 정보]의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제