Laravelでスケジュールされたタスクを実装する方法

小云云
リリース: 2023-03-19 18:16:01
オリジナル
2651 人が閲覧しました

スケジュールされたタスクはバックエンド開発プロセスで非常に一般的な要件であり、データ統計、スパム クリーニング、その他のシナリオでよく使用されます。 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート