ホームページ >PHPフレームワーク >Laravel >laravelのスケジュールされたタスクはcronを使用する必要がありますか?
Laravel のスケジュールされたタスクは cron を使用する必要があります。laravel ですべての laravel タスクを定期的に実行したい場合は、サーバーに cron エントリを追加し、「phppath project path/artisan スケジュール:run...」を追加する必要があります。ルートファイルに「コードだけで十分です。
この記事の動作環境: linux7.3 システム、Laravel バージョン 5.4、Dell G3 コンピューター。
laravel には非常に強力な機能があります。すべての laravel タスクを定期的に実行するには、サーバーに cron エントリを追加するだけです。 . .
これで、次のデータ テーブルができました。
cron テーブルの cron フィールドの値を 1 分ごとに 1 ずつ増加させたいと考えています。ステップ:
1. App\Console\Kernel.php に laravel コードを書き込みます
protected function schedule(Schedule $schedule) { $schedule->call(function () { DB::table('cron')->increment('cron'); })->everyMinute(); }
2. /var/spool/cron/root にコードを追加しますサービスのファイル
注: ここでのファイルの編集には vim エディタを使用するのが最善ですが、winscp を使用してファイルを編集すると、タスクが実行されないという問題が発生します。
コマンドラインに入力してください
crontab -e
次のコードを追加してください
* * * * * /usr/local/php/bin/php /data/wwwroot/test/artisan schedule:run 1>> /dev/null 2>&1
コマンドラインに入力してください
crontab -u root -lいいえシステムは /var/spool/cron ディレクトリ内のファイルを毎分読み取るため、cron サービスを再起動する必要があります。 次の構成に従っても実行できない場合は、次の方法を使用して問題をトラブルシューティングできます。 コマンドが絶対パスを使用しているかどうかを確認します。たとえば、次のようになります。ここでは php の代わりに /usr/local/php/bin/ を使用し、artisan の代わりに /data/wwwroot/test/artisan を使用します。 それでも絶対パスが実行されない場合は、コマンド ラインに /usr/local/php/bin/php /data/wwwroot/test/artisanschedule:run 1>> /dev と直接入力します。 null 2>&1, 実行されるか確認してください。実行されない場合は、laravel コードの問題です。実行される場合は、環境変数の問題です。パスの問題を確認してください。 php がどこにあるかわからない場合は、コマンドラインにどの php を入力すると、php がインストールされている場所を尋ねるメッセージが表示されます。 [関連する推奨事項:
laravel ビデオチュートリアル ]
以上がlaravelのスケジュールされたタスクはcronを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。