スケジュールされたタスクはバックエンド開発プロセスで非常に一般的な要件であり、データ統計、スパム クリーニング、その他のシナリオでよく使用されます。 Laravel はスケジュールされたタスク ツールの完全なセットを提供するため、ロジックを完成させることだけに集中すればよく、残りの基本的な作業は Laravel が処理します。
この記事では、Laravelでスケジュールされたタスクを実装するためのサンプルコードを主に紹介しますが、編集者が非常に良いと思ったので、参考として共有します。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。
コマンドを生成
php artisan make:command AreYouOK
5.2およびそれ以前のバージョン、このコマンドは`php職人make:consolexxx`です
コマンドを編集
`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(); }
上記のロジックは 1 分ごとに呼び出されます。 Laravel は、1 分から 1 年までのさまざまな長さの時間関数を提供しており、これらを直接呼び出すことができます。
この Laravel プロジェクトをシステムの cron に登録します
`/etc/crontab` ファイルを編集して次のコードを追加します:
コードをコピーしますコードは次のとおりです:
* * * * * 上記の行の root /usr/ bin/php /var/www/xxxlaravel/artisan subject:run >> /dev/null 2>&1
`/var/www/xxxlaravel` を変更する必要があります実際のパスへ。
fire
cron を再起動してこの機能を有効にします: `systemctl restart crond.service`、完了です。
関連する推奨事項:
JS はバックグラウンドの setInterval タイミングをリクエストするスケジュールされたタスクを実装し、N 秒ごとに Ajax リクエストを発行します
スケジュールされたタスクを実装する NodeJ のサンプルコード
PHP スケジュールされた WeChat access_token を取得する方法タスク
以上がLaravelでスケジュールされたタスクを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。