Weave 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

ワーカを開始する

Supervisor

Supervisor は Linux 用のプロセス・モニターで、コンソール・プロセスを自動的に開始できます。 Ubuntu では、下記のコマンドによってインストールすることが出来ます。

sudo apt-get install supervisor

Supervisor の構成ファイルは、通常、/etc/supervisor/conf.d にあります。 好きな数だけの構成ファイルをそこに作成することが出来ます。

一例を挙げましょう。

[program:yii-queue-worker]
process_name=%(program_name)s_%(process_num)02d
command=/usr/bin/php /var/www/my_project/yii queue/listen --verbose=1 --color=0
autostart=true
autorestart=true
user=www-data
numprocs=4
redirect_stderr=true
stdout_logfile=/var/www/my_project/log/yii-queue-worker.log

この場合、Supervisor は 4 個の queue/listen ワーカを開始します。 ワーカの出力は指定されたログ・ファイルに書かれます。

Supervisor の構成と使用方法については、その ドキュメント を参照して下さい。

queue/listen で開始されるワーカ・デーモンがサポートされているのは、ファイル、データベース、Redis、 RabbitMQ、AMQP Interop、Beanstalk および Gearman のドライバだけであることに留意して下さい。追加のオプションについては、ドライバのガイドを参照して下さい。

Systemd

Systemd は、ユーザ空間をブートストラップするために Linux で使用されるもう一つの初期化システムです。 Systemd を使ってワーカの起動を構成するためには、/etc/systemd/system ディレクトリに下記の内容を持った [email protected] という名前の構成ファイルを作成します。

[Unit]
Description=Yii Queue Worker %I
After=network.target
# 次の2行はキューのバックエンドが mysql である場合にのみ当てはまります
# あなたのバックエンドを支持するサービスで置き換えて下さい
After=mysql.service
Requires=mysql.service

[Service]
User=www-data
Group=www-data
ExecStart=/usr/bin/php /var/www/my_project/yii queue/listen --verbose
Restart=on-failure

[Install]
WantedBy=multi-user.target

構成を再読込するためには、systemd をリロードする必要があります。

systemctl daemon-reload

ワーカを制御する一連のコマンド:

# 2つのワーカを開始する
systemctl start yii-queue@1 yii-queue@2

# 走っているワーカの状態を取得する
systemctl status "yii-queue@*"

# 特定のワーカを停止する
systemctl stop yii-queue@2

# 走っている全てのワーカを停止する
systemctl stop "yii-queue@*"

# 2つのワーカをシステムのブート時に開始する
systemctl enable yii-queue@1 yii-queue@2

Systemd の全ての機能を学ぶためには、その ドキュメント を参照して下さい。

Cron

Cron を使ってワーカを開始することも出来ます。その場合は queue/run コマンドを使う必要があります。

構成例:

* * * * * /usr/bin/php /var/www/my_project/yii queue/run

上記の場合、cron はコマンドを1分ごとに実行します。

queue/run コマンドは、ファイル, データベース、Redis、Beanstalk、Gearman のドライバでサポートされています。 追加のオプションについては、ドライバのガイドを参照して下さい。

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.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
adachsoft/php-code-style