ホームページ  >  記事  >  バックエンド開発  >  [Lumen 5.2 ドキュメント] その他の機能 -- キュー

[Lumen 5.2 ドキュメント] その他の機能 -- キュー

WBOY
WBOYオリジナル
2016-06-23 13:16:28926ブラウズ

1. はじめに

Lumen キュー サービスは、さまざまなバックグラウンド キュー ドライバーに統合された API を提供します。キューを使用すると、時間のかかるタスク (電子メールの送信など) の実行を遅らせることができるため、Web リクエストの応答速度が大幅に向上します。

1.1 構成

キュー構成オプションは .env ファイルにあります。

1.2 キュードライバーの予備知識

データベース

データベースをキュードライバーとして使用するには、タスクを保存するデータベーステーブルが必要です:

Schema::create('jobs', function (Blueprint $table) {    $table->bigIncrements('id');    $table->string('queue');    $table->longText('payload');    $table->tinyInteger('attempts')->unsigned();    $table->tinyInteger('reserved')->unsigned();    $table->unsignedInteger('reserved_at')->nullable();    $table->unsignedInteger('available_at');    $table->unsignedInteger('created_at');    $table->index(['queue', 'reserved', 'reserved_at']);});

その他のキューの依存関係

以下は、キュードライバーのためにインストールする必要がある依存関係です。上記のキュードライバー:

    Amazon SQS: aws/aws-sdk-php ~3.0
  • Beanstalkd: pda/pheanstalk ~3.0
  • Redis: predis/predis ~1.0

Laravel との違い 2.

と多くのフレーム 他の関数と同様に、Lumen のキュー タスク メソッドは Laravel キュー タスクに依存しているため、Lumen キュー タスクの詳細については、完全な Laravel キュー ドキュメントを参照してください。

ただし、Lumen と Laravel のキュー実装では、サポートが若干異なります。これらの違いについては以下で説明します。まずキュータスクの生成を見てみましょう。

2.1 Generator

Lumen には新しいタスク クラスの組み込みの自動作成がありません。代わりに、このクラスは、各キュー タスクが継承する基本的なクラス構造を提供します。 Job クラスには既に InteractsWithQueue、Queueable、SerializesModels の特性が含まれています。

<?phpnamespace App\Jobs;class ExampleJob extends Job{    /**     * Create a new job instance.     *     * @return void     */    public function __construct()    {        //    }    /**     * Execute the job.     *     * @return void     */    public function handle()    {        //    }}

2.2 分散タスク

キュー タスクの分散に関する詳細については、Laravel フレームワークと同様に、Laravel キューのドキュメントを参照してください。 Lumen アプリケーションからディスパッチ メソッドを使用できます。 タスクをどこにでも分散できます:

dispatch(new ExampleJob);

もちろん、このファサードを使用することを選択した場合は、$app->withFacades() のコメントを解除する必要があります。ファイル bootstrap/app.php:

Queue::push(new ExampleJob);

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