ホームページ  >  記事  >  PHPフレームワーク  >  PHP Laravel スケジュールタスク スケジュール [乾燥情報]

PHP Laravel スケジュールタスク スケジュール [乾燥情報]

藏色散人
藏色散人転載
2020-06-23 13:43:305281ブラウズ

以下は、#Laravel のチュートリアルコラムで、PHP Laravel のスケジュールタスク Schedule を紹介するものです。

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のスケジュールコマンドを1分ごとに調整し、Laravelが実行タスクを決定します。

注: php と アルティザン のディレクトリに注意してください。php は php ディレクトリを表示できます。

***** コマンド

また、上記のコマンドの前の 5 つの * は、それぞれ分、時間、日、月、週を表します。

分: 0 ~ 59 の整数。デフォルトの * および */1 は 1 分を表します。

時間: 0 ~ 23 の整数。

日: 1 ~ 31 の整数。

月: 1 ~ 12 の整数。

平日: 0 ~ 7 の整数。0 と 7 は両方とも日曜日を表します。

crontab -l は、現在スケジュールされているタスクを一覧表示できます。

2. Laravel スケジュールタスクを追加します。

1. App\Console\Kernel クラスでスケジュール タスクを定義します:

<?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();
    }
}

上記では、実装メソッドの 2 つの例を示しています。最初のメソッドはクロージャを使用するもので、 2 番目の方法は、アーティザン コマンドを使用して実装されます。

スケジュールには多くの時間があります:

->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());
    }
}

わかりました。上記はスケジュールされたタスクを実行できます。上記のタスクが実行されない場合は、phpArtisan list コマンドを使用して、いくつかのエラー メッセージを出力できます。

laravel 関連の技術記事については、

laravel 列をご覧ください。

以上がPHP Laravel スケジュールタスク スケジュール [乾燥情報]の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。