(1) キューの実装
laravelではキューを操作するだけで実装できます。 , 実装を前提として、簡単な設定を行い、config/queue.php
を修正する必要があります。詳しくは公式ドキュメントを確認してください。ここでは詳しく説明しません。本題に入りましょう。
まず、
phpArtisan make:jobタスククラス名
を実行するとキュータスクが実装できます このコマンドを実行するとアプリディレクトリにジョブが生成されますディレクトリに移動し、新しいタスク クラスを作成します。このタスク クラスは、Illuminate\Contracts\Queue\ShouldQueue
インターフェイスを自動的に継承します。キューはタスク クラスのハンドル メソッドを呼び出すため、必要なのは、特定のビジネス ロジックを実装することで、タスク クラスを簡単に実装できます。この時点では、タスククラスを処理しているのですが、処理用のタスクをどのように割り当てればよいでしょうか?-
laravel では、タスクの分散は単純な実装メソッドを介して行うだけでよく、タスクに対応するキューを指定するだけで済みます。この実装方法では、タスク分散を実現するために次の簡単なコード行のみが必要です。
//任务指定到对应的队列 $job = (new TestQueue())->onQueue('队列名称'); //分发任务 dispatch($job);
キューが分散された後、
php Artisan queue:work
queue プロセッサが実行され、キューに分散されたタスクが処理されます。手動で停止するか、端末を閉じるまで実行されます。キュー プロセッサは常駐プロセスであり、開始されたアプリケーションの状態をメモリに保存するため、対応するコードを変更する場合は、変更されたコード ロジックをロードするためにキュー プロセッサを再起動する必要があることに注意してください。したがって、対応するタスク クラスを変更するときは、正確さを確認するために再起動する必要があります。スーパーバイザーの構成については、こちらの公式ドキュメントで非常にわかりやすく説明されています。公式ドキュメントのポータルを繰り返す必要はありません
(2 ) タスクのスケジューリング
ここでは、簡潔でわかりやすい公式ドキュメントの言葉を直接引用します。
以前は、サーバー上のスケジュールされたタスクごとに Cron エントリを作成する必要がある場合がありました。しかし、これらのタスク スケジューラがソース コードに含まれておらず、Cron エントリを追加するには毎回 SSH リンクを介してサーバーにログインする必要があるため、このアプローチはすぐに不親切になります。
Laravel コマンドラインスケジューラーを使用すると、Laravel でコマンドのスケジュールを明確かつスムーズに定義できます。このタスク スケジューラを使用する場合、サーバー上に Cron エントリを 1 つ作成するだけで済みます。タスクのスケジュールは、app/Console/Kernel.php のスケジュール メソッドで定義されます。
-
タスクのスケジュール定義。公式のlaravelドキュメントでは、タスクアーティザンコマンドのスケジューリングとキューのスケジューリングがより一般的に使用されます。
//artisan命令调度 $schedule->command('emails:send Taylor --force')->daily(); //队列调度 $schedule->job(new Heartbeat)->everyFiveMinutes(); // 分发任务到「heartbeats」队列... $schedule->job(new Heartbeat, 'heartbeats')->everyFiveMinutes();
上記の手順の
daily()
、everyFiveMinutes()
などのタスク呼び出しの頻度はすべて制限されています。タスクの呼び出し頻度。文字通りの意味で理解するのは難しくありません。実際には、1 分ごとまたは毎日 1 回呼び出されるように設定されています。具体的な呼び出しは次のとおりです (長さを要約すると)。詳細については公式ドキュメントを確認することもできます。
説明 | |
---|---|
カスタマイズされた Cron スケジュール実行タスク | |
タスクを 1 分ごとに実行します | |
5 分ごとにタスクを実行します | |
10 分ごとにタスクを実行します | ##->everyFifteenMinutes(); |
->everyThirtyMinutes(); | |
->hourly(); | |
#->hourlyAt(17); | |
->daily(); | |
->dailyAt('13 :00' ); | |
->twiceDaily(1, 13); | |
->weekly(); | |
->weeklyOn(1 , '8:00'); | |
- >monthly(); | |
->monthlyOn(4, '15:00'); | |
->四半期ごと(); | |
#->yearly(); | 毎年タスクを実行 |
##->timezone('America/New_York'); | タイムゾーンを設定します |
最後に、もちろんスケジューラーを起動して | * * * * * cd /project address&& phpArtisanSchedule を実行します:run >> /dev/null 2>&1
- (3) まとめ
実際のところ、あまり言うことはありませんが、これら 2 つは通常、私たちのプロジェクトにとって重要であり、公式ドキュメントは非常に煩雑です。必要であれば、一般的に使用されるメソッドについて簡単に説明します。Laravel はこれらの一般的な操作をカプセル化しているため、多くの問題が軽減されます。実装ロジックを理解することに興味がある場合は、少なくともその使用方法を最初に知ってください。
最新の 5 つの Laravel ビデオ チュートリアル
以上がlaravel6のキューとタスクスケジューリングの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

LaravelはWebアプリケーションを迅速に構築するのに適していますが、Pythonはより広い範囲のアプリケーションシナリオに適しています。 1.Laravelは、Web開発を簡素化するために、Eloquentorm、Bladeテンプレートエンジン、職人ツールを提供します。 2。Pythonは、その動的なタイプ、リッチ標準ライブラリ、サードパーティのエコシステムで知られており、Web開発、データサイエンス、その他の分野に適しています。

LaravelとPythonにはそれぞれ独自の利点があります。Laravelは、機能が豊富なWebアプリケーションを迅速に構築するのに適しており、Pythonはデータサイエンスと一般的なプログラミングの分野でうまく機能します。 1.Laravelは、最新のWebアプリケーションの構築に適したEloquentormおよびBladeテンプレートエンジンを提供します。 2。Pythonには豊富な標準的な図書館とサードパーティライブラリがあり、DjangoとFlaskのフレームワークはさまざまな開発ニーズを満たしています。

Laravelは、コード構造を明確にし、開発プロセスをより芸術的にすることができるため、選択する価値があります。 1)LaravelはPHPに基づいており、MVCアーキテクチャに従い、Web開発を簡素化します。 2)Eloquentorm、Artisan Tools、Bladeテンプレートなどのコア機能は、開発の優雅さと堅牢性を高めます。 3)ルーティング、コントローラー、モデル、ビューを通じて、開発者はアプリケーションを効率的に構築できます。 4)キューやイベントモニタリングなどの高度な機能により、アプリケーションのパフォーマンスがさらに向上します。

Laravelは、バックエンドフレームワークであるだけでなく、完全なWeb開発ソリューションでもあります。ルーティング、データベース操作、ユーザー認証などの強力なバックエンド機能を提供し、フロントエンド開発をサポートし、Webアプリケーション全体の開発効率を向上させます。

LaravelはWeb開発に適しており、Pythonはデータサイエンスと迅速なプロトタイピングに適しています。 1.LaravelはPHPに基づいており、Eloquentormなどのエレガントな構文とリッチ機能を提供します。 2。Pythonは、そのシンプルさで知られており、Web開発とデータサイエンスで広く使用されており、豊富なライブラリエコシステムがあります。

laravelcanbeefeectiveivefectively-worldapplications for buildingscalablewebsolutions.1)その概要を説明することで、lastulavel'secosystem(toolslikenovaを含むlaravel'secosystem)を拡張します

バックエンド開発におけるLaravelのコア機能には、ルーティングシステム、Eloquentorm、移行機能、キャッシュシステム、キューシステムが含まれます。 1.ルーティングシステムは、URLマッピングを簡素化し、コードの組織とメンテナンスを改善します。 2.Eloquentormは、開発効率を改善するためにオブジェクト指向のデータ操作を提供します。 3.移行関数は、バージョン制御を介してデータベース構造を管理して、一貫性を確保します。 4.キャッシュシステムは、データベースクエリを削減し、応答速度を向上させます。 5.キューシステムは、大規模なデータを効果的に処理し、ユーザー要求のブロックを避け、全体的なパフォーマンスを改善します。

Laravelは、バックエンド開発で強く機能し、Eloquentorm、コントローラー、サービスクラスを介してデータベース操作を簡素化し、ビジネスロジックを処理し、キュー、イベント、その他の機能を提供します。 1)Eloquentormは、モデルを介してデータベーステーブルをマップしてクエリを簡素化します。 2)ビジネスロジックは、モジュール性と保守性を向上させるために、コントローラーとサービスクラスで処理されます。 3)キューシステムなどのその他の機能は、複雑なニーズの処理に役立ちます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

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

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
