ホームページ > バックエンド開発 > PHPチュートリアル > キューを使用してLaravelのタスクを延期します

キューを使用してLaravelのタスクを延期します

William Shakespeare
リリース: 2025-03-07 01:16:10
オリジナル
548 人が閲覧しました

Deferring Tasks in Laravel Using Queues

この記事では、ユーザーエクスペリエンスとウェブサイトのパフォーマンスを向上させるための計算的に集中的なタスクを延期するための強力なツールであるLaravelのキューAPIを調査します。 重要な概念をカバーし、実用的な例で説明します。

ウェブサイトの速度は、SEOとユーザーの満足度に大きな影響を与えます。 遅いページの読み込み時間は、多くの場合、リソースが多いコードブロックに由来します。 解決策?非クリティカルなタスクを延期して、全体的な速度を向上させます。 LaravelのキューAPIは、これを達成するための合理化された方法を提供します。

LaravelのキューAPIは、キューに追加されたジョブを管理します。 これらのキューは、特定のキュードライバーを利用する接続に関連付けられています。コンポーネントを分解しましょう:

キュードライバー

データベース接続と同様に、キューAPIは、データベース、BeanStalkD、SQS、Redisなどのさまざまなドライバーをサポートしています。ドライバーは、キュー情報が保存される場所(データベースやRedisサーバーなど)を決定します。 2人の特別なドライバー、

は、テストに役立ちます。

ジョブの実行をスキップします。

null接続null

キュー構成には、デフォルトの接続を指定する必要があります。この接続は次のとおりです

使用するキュードライバー。

ドライバー固有の構成設定
    新しいジョブのデフォルトのキュー名。
  • キュー
  • 特に指定されていない限り、ジョブはデフォルトのキューに追加されます。
  • さあ、現実世界の例を作成しましょう。画像サムネイルを生成します
最初のキュージョブの作成

複数の画像サムネイルをリアルタイムで生成すると、特に大きな画像や多くのサムネイルサイズを使用して、ユーザーエクスペリエンスに悪影響を与える可能性があります。 リアルタイム処理の代わりに、このタスクをキューに延期します。 このアプローチは、メインページが迅速に読み込まれ、サムネイルの生成が非同期に発生するため、優れたユーザーエクスペリエンスを提供します。

画像モデルの作成

最初に、アップロードされた画像を管理するために

モデルを作成します。

これにより、

モデルと移行ファイルが生成されます。 移行を変更する(

移行を実行します:

Image Laravelジョブを作成する

php artisan make:model Image --migration
ログイン後にコピー
ログイン後にコピー
サムネイル処理には介入画像ライブラリを使用します。作曲家経由でインストールします:

Image 職人コマンドを使用してジョブを作成します:

<?php
// database/migrations/YYYY_MM_DD_HHMMSS_create_images_table.php
// ...
$table->string('org_path');
// ...
?>
ログイン後にコピー
ログイン後にコピー

app/jobs/processimageThumbnails.php

の内容を:
php artisan migrate
ログイン後にコピー
ログイン後にコピー
に置き換えます

メソッドには、サムネイル生成ロジックが含まれています

ジョブのテスト
php composer.phar require intervention/image
ログイン後にコピー

簡単な画像アップロードフォームを作成しましょう。 コントローラーを作成():

php artisan make:job ProcessImageThumbnails
ログイン後にコピー
を作成します
php artisan make:model Image --migration
ログイン後にコピー
ログイン後にコピー

ビューを作成し(resources/views/upload_form.blade.php )、routes/web.php

にルートを追加します
<?php
// database/migrations/YYYY_MM_DD_HHMMSS_create_images_table.php
// ...
$table->string('org_path');
// ...
?>
ログイン後にコピー
ログイン後にコピー

メソッドは、ファイルのアップロード、データベースエントリ、uploadジョブをディスパッチします。 ProcessImageThumbnailsアップロード後、データベースクエリを使用してジョブの追加を

テーブルに確認してください。

キューワーカーjobs

キューワーカーは、キューに登録されたジョブを処理します。それを始めてください:

このコマンドは、保留中のジョブを処理します。 出力には、ジョブ処理ステータスが表示されます。 継続的なバックグラウンド処理には、スーパーバイザー、サーカスなどのプロセスマネージャーを使用してください。

結論

php artisan migrate
ログイン後にコピー
ログイン後にコピー
LaravelのキューAPIは、リソース集約型のタスクを効率的に処理し、ユーザーエクスペリエンスを向上させます。 この記事は、基本的な理解と実用的な実装の例を提供しました。 さらに学習するには、Envato Marketでリソースを探索してください

以上がキューを使用してLaravelのタスクを延期しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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