目次
(1) キューの実装
(2 ) タスクのスケジューリング
最新の 5 つの Laravel ビデオ チュートリアル
ホームページ PHPフレームワーク Laravel laravel6のキューとタスクスケジューリングの詳細な説明

laravel6のキューとタスクスケジューリングの詳細な説明

Jul 19, 2021 pm 03:13 PM

(1) キューの実装

laravelではキューを操作するだけで実装できます。 , 実装を前提として、簡単な設定を行い、config/queue.phpを修正する必要があります。詳しくは公式ドキュメントを確認してください。ここでは詳しく説明しません。本題に入りましょう。

  1. まず、phpArtisan make:jobタスククラス名を実行するとキュータスクが実装できます このコマンドを実行するとアプリディレクトリにジョブが生成されますディレクトリに移動し、新しいタスク クラスを作成します。このタスク クラスは、Illuminate\Contracts\Queue\ShouldQueue インターフェイスを自動的に継承します。キューはタスク クラスのハンドル メソッドを呼び出すため、必要なのは、特定のビジネス ロジックを実装することで、タスク クラスを簡単に実装できます。この時点では、タスククラスを処理しているのですが、処理用のタスクをどのように割り当てればよいでしょうか?
    laravel6のキューとタスクスケジューリングの詳細な説明

  2. laravel では、タスクの分散は単純な実装メソッドを介して行うだけでよく、タスクに対応するキューを指定するだけで済みます。この実装方法では、タスク分散を実現するために次の簡単なコード行のみが必要です。

    //任务指定到对应的队列
    $job = (new TestQueue())->onQueue('队列名称');
    //分发任务
    dispatch($job);
    ログイン後にコピー
  3. キューが分散された後、php Artisan queue:workqueue プロセッサが実行され、キューに分散されたタスクが処理されます。手動で停止するか、端末を閉じるまで実行されます。キュー プロセッサは常駐プロセスであり、開始されたアプリケーションの状態をメモリに保存するため、対応するコードを変更する場合は、変更されたコード ロジックをロードするためにキュー プロセッサを再起動する必要があることに注意してください。したがって、対応するタスク クラスを変更するときは、正確さを確認するために再起動する必要があります。

  4. スーパーバイザーの構成については、こちらの公式ドキュメントで非常にわかりやすく説明されています。公式ドキュメントのポータルを繰り返す必要はありません

(2 ) タスクのスケジューリング

ここでは、簡潔でわかりやすい公式ドキュメントの言葉を直接引用します。

以前は、サーバー上のスケジュールされたタスクごとに Cron エントリを作成する必要がある場合がありました。しかし、これらのタスク スケジューラがソース コードに含まれておらず、Cron エントリを追加するには毎回 SSH リンクを介してサーバーにログインする必要があるため、このアプローチはすぐに不親切になります。
Laravel コマンドラインスケジューラーを使用すると、Laravel でコマンドのスケジュールを明確かつスムーズに定義できます。このタスク スケジューラを使用する場合、サーバー上に Cron エントリを 1 つ作成するだけで済みます。タスクのスケジュールは、app/Console/Kernel.php のスケジュール メソッドで定義されます。

  1. タスクのスケジュール定義。公式のlaravelドキュメントでは、タスクアーティザンコマンドのスケジューリングとキューのスケジューリングがより一般的に使用されます。

    //artisan命令调度
    $schedule->command('emails:send Taylor --force')->daily();
    //队列调度
    $schedule->job(new Heartbeat)->everyFiveMinutes();
    // 分发任务到「heartbeats」队列...
    $schedule->job(new Heartbeat, 'heartbeats')->everyFiveMinutes();
    ログイン後にコピー
  2. 上記の手順の daily()everyFiveMinutes() などのタスク呼び出しの頻度はすべて制限されています。タスクの呼び出し頻度。文字通りの意味で理解するのは難しくありません。実際には、1 分ごとまたは毎日 1 回呼び出されるように設定されています。具体的な呼び出しは次のとおりです (長さを要約すると)。詳細については公式ドキュメントを確認することもできます。

#メソッド説明##->cron(' * * * * *');->everyMinute();->everyFiveMinutes();->everyTenMinutes(); ##->everyFifteenMinutes();15 分ごとにタスクを実行します->everyThirtyMinutes();30 分ごとにタスクを実行->hourly();タスクを実行毎時タスクを 1 時間ごとに 17 分に実行します毎日午前 0 時にタスクを実行します (翻訳者注: 毎日 0 時)タスクを毎日 13:00 に 1 回実行します実行毎日 1:00 と 13:00 のタスク 1 つのタスク週に 1 回タスクを実行毎週月曜日の 8 時にタスクを実行します毎月 1 つのタスクを実行実行タスクは毎月 1 回、4 日の 15:00 に実行します。タスクを四半期に 1 回実行します#->yearly();毎年タスクを実行* * * * * cd /project address&& phpArtisanSchedule を実行します:run >> /dev/null 2>&1。
カスタマイズされた Cron スケジュール実行タスク
タスクを 1 分ごとに実行します
5 分ごとにタスクを実行します
10 分ごとにタスクを実行します
#->hourlyAt(17);
->daily();
->dailyAt('13 :00' );
->twiceDaily(1, 13);
->weekly();
->weeklyOn(1 , '8:00');
- >monthly();
->monthlyOn(4, '15:00');
->四半期ごと();
##->timezone('America/New_York'); タイムゾーンを設定します
最後に、もちろんスケジューラーを起動して
    (3) まとめ
  1. 実際のところ、あまり言うことはありませんが、これら 2 つは通常、私たちのプロジェクトにとって重要であり、公式ドキュメントは非常に煩雑です。必要であれば、一般的に使用されるメソッドについて簡単に説明します。Laravel はこれらの一般的な操作をカプセル化しているため、多くの問題が軽減されます。実装ロジックを理解することに興味がある場合は、少なくともその使用方法を最初に知ってください。
関連する推奨事項:

最新の 5 つの Laravel ビデオ チュートリアル

以上がlaravel6のキューとタスクスケジューリングの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Laravelで高度な機能を備えたRESTFUL APIを構築する方法は? Laravelで高度な機能を備えたRESTFUL APIを構築する方法は? Mar 11, 2025 pm 04:13 PM

この記事では、堅牢なLaravel Restful APIの構築をガイドします。 プロジェクトのセットアップ、リソース管理、データベースインタラクション、シリアル化、認証、承認、テスト、および重要なセキュリティベストプラクティスをカバーしています。 スケーラビリティチャレに対処します

LaravelでOAUTH2認証と承認を実装する方法は? LaravelでOAUTH2認証と承認を実装する方法は? Mar 12, 2025 pm 05:56 PM

この記事では、LaravelでOAUTH 2.0認証と承認を実装しています。 League/OAuth2-Serverやプロバイダー固有のソリューションなどのパッケージを使用して、データベースのセットアップ、クライアント登録、承認サーバー構成を強調しています

Laravelのコンポーネントを使用して再利用可能なUI要素を作成するにはどうすればよいですか? Laravelのコンポーネントを使用して再利用可能なUI要素を作成するにはどうすればよいですか? Mar 17, 2025 pm 02:47 PM

この記事では、コンポーネントを使用してLaravelで再利用可能なUI要素の作成とカスタマイズについて説明し、組織のベストプラクティスを提供し、パッケージを強化することを提案します。

クラウドネイティブ環境でLaravelを使用するためのベストプラクティスは何ですか? クラウドネイティブ環境でLaravelを使用するためのベストプラクティスは何ですか? Mar 14, 2025 pm 01:44 PM

この記事では、スケーラビリティ、信頼性、セキュリティに焦点を当てたクラウドネイティブ環境でLaravelを展開するためのベストプラクティスについて説明します。重要な問題には、コンテナ化、マイクロサービス、ステートレス設計、最適化戦略が含まれます。

Laravelでカスタム検証ルールを作成して使用するにはどうすればよいですか? Laravelでカスタム検証ルールを作成して使用するにはどうすればよいですか? Mar 17, 2025 pm 02:38 PM

この記事では、Laravelでカスタム検証ルールの作成と使用について説明し、それらを定義および実装する手順を提供します。再利用性や特異性などの利点を強調し、Laravelの検証システムを拡張する方法を提供します。

Laravelでカスタムブレードディレクティブを作成および使用するにはどうすればよいですか? Laravelでカスタムブレードディレクティブを作成および使用するにはどうすればよいですか? Mar 17, 2025 pm 02:50 PM

この記事では、Laravelでカスタムブレードディレクティブの作成と使用を行い、テンプレートを強化します。ディレクティブの定義、テンプレートでそれらを使用し、大規模なプロジェクトでそれらを管理することをカバーし、改善されたコードの再利用性やRなどの利点を強調しています

Laravel vs. Symfony:Webアプリに適したものはどれですか? Laravel vs. Symfony:Webアプリに適したものはどれですか? Mar 10, 2025 pm 01:34 PM

PHPフレームワークの選択に関しては、LaravelとSymfonyは最も人気があり広く使用されているオプションの1つです。各フレームワークは、独自の哲学、特徴、強みをテーブルにもたらし、さまざまなプロジェクトやユースケースに適しています

Laravelでファイルアップロードとクラウドストレージを処理する最良の方法は何ですか? Laravelでファイルアップロードとクラウドストレージを処理する最良の方法は何ですか? Mar 12, 2025 pm 05:54 PM

この記事では、Laravelの最適なファイルアップロードとクラウドストレージ戦略を調べます。 ローカルストレージとクラウドプロバイダー(AWS S3、Google Cloud、Azure、DigitalOcean)、セキュリティ(検証、消毒、HTTPS)およびパフォーマンスオプティを強調しています

See all articles