Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Yii2 Queue Laravel Package

yiisoft/yii2-queue

Yii2 Queue runs tasks asynchronously via pluggable queue backends: DB, Redis, RabbitMQ/AMQP, Beanstalk, ActiveMQ, and Gearman. Define jobs as classes implementing JobInterface and push them to the queue for background processing.

View on GitHub
Deep Wiki
Context7

AWS SQS ドライバ

このドライバはキューのデータを保存するのに AWS SQS を使います。

これを使用するためには、あなたのアプリケーションに aws/aws-sdk-php エクステンションを追加する必要があります。

構成例:

return [
    'bootstrap' => [
        'queue', // コンポーネントが自身のコンソール・コマンドを登録します
    ],
    'components' => [
        'queue' => [
            'class' => \yii\queue\sqs\Queue::class,
            'url' => '<sqs url>',
            'key' => '<key>',
            'secret' => '<secret>',
            'region' => '<region>',
            'endpoint' => '<endpoint>', // https://docs.aws.amazon.com/general/latest/gr/sqs-service.html#sqs_region
        ],
    ],
];

FIFO キューのための構成例:

return [
    'bootstrap' => [
        'queue', // コンポーネントが自身のコンソール・コマンドを登録します
    ],
    'components' => [
        'queue' => [
            'class' => \yii\queue\sqs\Queue::class,
            'url' => '<sqs url>',
            'key' => '<key>',
            'secret' => '<secret>',
            'region' => '<region>',
            'messageGroupId' => '<Group ID>',
            'endpoint' => '<endpoint>', // https://docs.aws.amazon.com/general/latest/gr/sqs-service.html#sqs_region
        ],
    ],
];

SQS では、FIFO キューのためにはメッセージ・グループ ID が必要です。自分自身で構成するか、"default" という値を使って下さい。

重複回避 ID が自動的に生成されます。そのため、SQS キューでコンテント・ベースの重複回避を有効にしていたとしても、この ID が使われることになります。

コンソール

タスクを実行するためにコンソール・コマンドが使用されます。

yii queue/listen [timeout]

listen コマンドが無限にキューを調べ続けるデーモンを起動します。キューに新しいタスクがあると、即座に取得され、実行されます。 timeout パラメータはジョブを待つ秒数を指定するものです。 デーモンは、クライアントとキューの間の接続を保持する SQS の "Long Polling" 機能を使います。

重要 SQS ドライバの timeout パラメータは 0 から 20 秒の範囲内になければなりません。

このコマンドを supervisor または systemd によって適切にデーモン化するのが、 最も効率的な方法です。

yii queue/run

run コマンドは、キューが空になるまでループして、タスクを取得し、実行します。 cron に向いた方法です。

run および listen のコマンドは下記のオプションを持っています。

  • --verbose, -v: 実行の状態をコンソールに表示します。
  • --isolate: すべてのタスクが独立した子プロセスで実行されます。
  • --color: 饒舌モードでハイライトを有効にします。
yii queue/clear

clear コマンドはキューをクリアします。

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle
atriumphp/atrium
sandermuller/package-boost-laravel
sandermuller/boost-skills
redaxo/core
yusufgenc/filament-api-forge