Laravelでキューワーカーをセットアップする方法は?
キュードライバーの構成:.envファイルのqueue_connectionをデータベースまたはredisに設定します。 2。タスククラスの作成:PHP Artisan Make:Jobを使用して、Indedqueueインターフェイスを実装するタスクを生成します。 3.データベーステーブルの設定:PHP Artisanキューを実行します:テーブルと移行してジョブテーブルを作成します。 4.キューワーカーを開始:PHPの職人キューを実行します。 5.スーパーバイザーを使用して実行を続けます。:メモリの漏れを避けるために、労働者が定期的に実行および再起動し続けるようにスーパーバイザーを構成します。 6。タスクをコードから配布します:ジョブを介してタスクを押します:: dispatch()またはdelay()メソッド。 7.失敗したタスクを監視および再試行します:failed_jobsテーブルを生成し、キューを使用します:failed、queue:retry and queue:flush flush conement failed task;上記の手順を完了した後、Laravelキューシステムはタスクを非同期に処理できます。
Laravelのキューシステムの基本を理解したら、Laravelでキューワーカーを設定することは簡単です。段階的にそれを行う方法は次のとおりです。

✅1。キュードライバーを構成します
まず、使用するキュードライバーを決定します。 Laravelはいくつかをサポートしています: sync
(デフォルト、ジョブをすぐに実行)、 database
、 redis
、 sqs
など。
.env
ファイルを開き、 QUEUE_CONNECTION
を変更します。

queue_connection = database
またはredisの場合:
queue_connection = redis
?ローカル開発のために、
database
良い選択です。生産の場合、redis
またはsqs
よりパフォーマンスが高くなります。
次に、 config/queue.php
の対応する構成が正しく設定されていることを確認します。
✅2。ジョブを作成する(オプションですが共通)
Artisanを使用してキューに登録されたジョブを生成します。
PHP Artisan Make:Job ProcessPodcast
これによりapp/Jobs/ProcessPodcast.php
にクラスが作成されます。あなたはそれをのように派遣することができます:
ProcessPodcast :: Dispatch($ Podcast);
あなたの仕事の道具ShouldQueue
を確認してください(生成されたジョブはデフォルトでこれを行います)。
✅3。キューテーブルをセットアップします(データベースドライバーを使用する場合)
database
ドライバーを使用している場合は、ジョブテーブルを作成します。
PHP職人のキュー:テーブル
移行を実行します:
PHPの職人が移行します
これにより、キューに留められているジョブが保存される
jobs
テーブルが作成されます。
✅4。キューワーカーを開始します
次のようにキューワーカーを実行します
PHP職人のキュー:仕事
これは、新しい仕事を聴いてそれらを処理する労働者を開始します。
有用なオプション:
-
--queue=high,low
- プロセス固有のキュー --delay=5
- ジョブの失敗を5秒遅延させます--tries=3
- 失敗したジョブを最大3回再試行しました--timeout=60
- 数秒でのジョブタイムアウト
例:
PHP Artisan Queue:work-trys = 3 - delay = 2
✅5。労働者を走らせ続ける(監督)
queue:work
コマンドは、生産で継続的に実行する必要があります。スーパーバイザーのようなプロセスモニターを使用します。
スーパーバイザーをインストール(ubuntu/debian):
sudo aptインストールスーパーバイザー
スーパーバイザー構成を作成します:
/etc/supervisor/conf.d/laravel-worker.conf
[プログラム:Laravel-Worker] process_name =%(program_name)s _%(process_num)02d command = php/var/www/your-app/artisan queue:work - sleep = 3-tries = 3 - max-time = 3600 autostart = true autorestart = true ユーザー= www-data Redirect_stderr = true stdout_logfile =/var/www/your-app/storage/logs/worker.log stopwaitsecs = 3600
⚠⚠️注:
--max-time=3600
メモリリークを避けるために1時間後に労働者を再起動します。
その後、スーパーバイザーをリロードします:
sudo supervisorctl読み取り sudo superpisorctlアップデート sudo supervisorctl start laravel-worker:*
✅6。コードからジョブを派遣します
コントローラーまたはサービスから:
app \ jobs \ processpodcastを使用します。 ProcessPodcast :: Dispatch($ Podcast);
または発送の遅延があります:
ProcessPodcast :: Dispatch($ podcast) - > delay(now() - > addminutes(10));
✅7。失敗したジョブを監視および再試行します
laravelログは、 failed_jobs
テーブルでジョブに失敗しました。それを作成するには:
PHP Artisan Queue:故障したテーブル PHPの職人が移行します
失敗したジョブを記録するには:
PHP Artisan Queue:work-log-failed
失敗した仕事を見る:
PHP Artisan Keue:失敗しました
それらを再試行する:
PHP Artisan Keue:すべてを再試行します
または削除:
PHP職人のキュー:フラッシュ
まとめ
- キュードライバーを選択して構成します。
- 必要に応じてデータベーステーブルを設定します。
- ジョブを作成して派遣します。
-
queue:work
監督者を使用して、それを生かし続けます。 - 障害とロギングを処理します。
あなたは今、仕事を非同期に処理しています。基本的に、それはそれが必要なすべてです - 複雑ではありませんが、ステップを見逃すのは簡単です。
以上がLaravelでキューワーカーをセットアップする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

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

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

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

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

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

Laravelの構成キャッシュは、すべての構成ファイルを単一のキャッシュファイルにマージすることにより、パフォーマンスを向上させます。生産環境で構成キャッシュを有効にすると、各リクエストでI/O操作を削減し、ファイルの解析を行うと、構成の読み込みが高速化されます。 1.アプリケーションが展開され、構成が安定しており、頻繁な変更は必要ありません。 2。構成を有効にして変更した後、phpartisanconfigを再実行する必要があります:キャッシュを有効にします。 3.構成ファイルのランタイム条件に依存する動的ロジックまたはクロージャーを使用しないでください。 4.トラブルシューティングの問題の場合、まずキャッシュをクリアし、.ENV変数を確認して、再キャッシュする必要があります。

usemockeryforcustomdependenciesbysettingtintingations withshouldreceive()。2。uselaravel’sfake()methodforfacadeslikemail、queue、andhttptopreventreal interactions.3.replacecontainer-boundserviceswith

LaravelのEloquentsCopesは、ローカルスコープとグローバルスコープに分割された一般的なクエリロジックをカプセル化するツールです。 1.ローカルスコープは、範囲から始まるメソッドで定義されており、post :: published()など、明示的に呼び出される必要があります。 2.グローバルスコープは、ソフト削除またはマルチテナントシステムによく使用されるすべてのクエリに自動的に適用され、スコープインターフェイスをモデルに実装および登録する必要があります。 3.スコープには、年または月ごとに記事をフィルタリングするなどのパラメーターを装備でき、呼び出し時に対応するパラメーターが渡されます。 4.コードの明確さと再利用性を改善するために使用する場合、命名仕様、チェーンコール、一時的な無効化、および組み合わせの拡張に注意してください。

紹介テーブルを作成して、紹介、紹介、推奨コード、使用時間を含む推奨関係を記録します。 2.推奨データを管理するために、ユーザーモデルのBelongStomanyとHasmanyの関係を定義します。 3.登録時に一意の推奨コードを生成します(モデルイベントを通じて実装できます)。 4.登録中にパラメーターをクエリすることにより、推奨コードをキャプチャし、検証後に推奨関係を確立し、自己称賛を防ぎます。 5.推奨されるユーザーが指定された動作(サブスクリプション順序)を完了した場合、報酬メカニズムをトリガーします。 6.共有可能な推奨リンクを生成し、Laravel Signature URLを使用してセキュリティを強化します。 7.推奨事項の総数や変換された番号など、ダッシュボードに推奨統計を表示します。データベースの制約、セッション、またはCookieが持続することを確認する必要があります。

CheckPhp> = 8.1、Composer、およびWebserver; 2.CloneOrCreateProjectAndRunComposErinStall; 3.Copy.Env.Exampleto.ENVANDRUNPHPARTISANKEY :generate; 4.setDatabaseCredentialSin.EnvandrunphpartisanMigrate-- Seed; 5.StartServerWithPhpartisEnserve; 6.optionallyrunnpmins

createahelpers.phpfileinapp/helperswithcustomfunctionslikeformatprice、isactiveroute、andisadmin.2.addthefiletothe "files" sectionofcomposer.jsonunderautoload.3.3.runcomposerdump-autoloadtomadtomakeTomeTheEfunctionSglunctionSglovalliableableableableableableableableableableableableabuntion

chooseafeatureflagstrategysuchasconfigベース、データベース駆動型、orhird-partytoolslikeflagsmith.2.setupadatabase-drivensystemby-drivensystemmigrationforafeature_flagstablewithname、evanabled、andrulesfields、thenrunthigration.3

シーダーファイルの作成:phpartisanmake:seederuserseederを使用してシーダークラスを生成し、実行方法のモデルファクトリーまたはデータベースクエリを介してデータを挿入します。 2。Databaseseederで他のシーダーを呼び出す:sulderseeder、Postseederなどを登録$ this-> call()を介して依存関係が正しいことを確認します。 3。シーダーの実行:PHPARTISANDBを実行する:種子をすべて登録したすべてのシーダーを実行するか、PHPARTISANMIGRATE:FRESS-シードを使用してデータをリセットして補充します。 4
