Laravel でスケジュールされたタスクを実装するにはどうすればよいですか?この記事では主にLaravelでスケジュールされたタスクを実装するためのサンプルコードを紹介します。編集者が非常に良いと思ったので、参考として共有します。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。
はじめに
スケジュールされたタスクは、バックエンド開発プロセスにおける非常に一般的な要件であり、データ統計、スパム クリーニング、その他のシナリオでよく使用されます。 Laravel はスケジュールされたタスク ツールの完全なセットを提供するため、ロジックを完成させることだけに集中すればよく、残りの基本的な作業は Laravel が処理します。
基本的な使い方
コマンドを生成
php artisan make:command AreYouOK
5.2以前のバージョンでは、このコマンドは`phpArtisan make:console xxx`
コマンドを編集
Edit `app/Console/Commands/AreYouOK phpです。 ` ファイルで、以下を変更します:
... ... protected $signature = 'areyou:ok'; // 命令名称 protected $description = '雷军,科技圈最会唱歌的男人'; // 命令描述,没什么用 public function __construct() { parent::__construct(); // 初始化代码写到这里,也没什么用 } public function handle() { // 功能代码写到这里 }
登録コマンド
`app/Console/Kernel.php` ファイルを編集し、新しく生成されたクラスを登録します:
protected $commands = [ \App\Console\Commands\AreYouOK::class, ];
呼び出しロジックを作成します:
protected function schedule(Schedule $schedule) { $schedule->command('areyou:ok') ->timezone('Asia/Shanghai') ->everyMinute(); }
上記のロジック毎分呼び出すことです。 Laravel は、1 分から 1 年までのさまざまな長さの時間関数を提供しており、これらを直接呼び出すことができます。
この Laravel プロジェクトをシステムの cron に登録します
`/etc/crontab` ファイルを編集し、次のコードを追加します:
* * * * * root /usr/bin/php /var/www/xxxlaravel/artisan schedule:run >> /dev/null 2>&1
上の行の `/var/www/xxxlaravel` は次のようにする必要があります。実際のパスに変更されました。
fire
cron を再起動してこの機能を有効にします: `systemctl restart crond.service`、完了です。
関連する推奨事項:
非同期プロセスを実行するためのスーパーバイザーを実装するLaravelの方法の詳細な説明
Laravelのタスクスケジューリングコンソールの詳細な説明
使い方の詳しい説明L Aravelイベントシステムにログインログを実装
以上がLaravel がスケジュールされたタスクを実装する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。