コンテンツへスキップ

キュー管理

Queuetyは複数の名前付きキューに対応しています。各ワーカーは1つのキュー、または順序付きのキューリストを処理します(ワーカーを参照)。キューは個別に一時停止・再開できます。

名前付きキュー

ジョブを特定のキューにディスパッチします。

PHP
use Queuety\Queuety;

Queuety::dispatch( 'send_email', $payload )->on_queue( 'emails' );
Queuety::dispatch( 'process_image', $payload )->on_queue( 'media' );
Queuety::dispatch( 'sync_data', $payload )->on_queue( 'sync' );

キューごとにワーカーを起動します。

シェル
wp queuety work --queue=emails
wp queuety work --queue=media
wp queuety work --queue=sync

デフォルトのキューはdefaultです。キューを指定しない場合、ジョブはここに送られます。

一時停止と再開

キューを一時停止すると、ワーカーが新しいジョブを取得しなくなります。すでに処理中のジョブは完了しますが、新しいジョブは取得されません。

PHP
Queuety::pause( 'emails' );
Queuety::resume( 'emails' );

キューが一時停止中かどうかを確認します。

PHP
if ( Queuety::is_paused( 'emails' ) ) {
    // Queue is paused
}

CLI経由で確認します。

シェル
wp queuety pause emails
wp queuety resume emails

ワーカーを終了させずに処理を一時停止できるため、デプロイやメンテナンスの際に便利です。

キューの統計情報

ステータス別にジョブ数を取得します。

PHP
$stats = Queuety::stats(); // all queues
$stats = Queuety::stats( 'emails' ); // specific queue

// Returns: ['pending' => 12, 'processing' => 3, 'completed' => 150, 'failed' => 2, 'buried' => 1]

CLI経由で確認します。

シェル
wp queuety status
wp queuety status --queue=emails

埋没ジョブ

埋没したすべてのジョブ(再試行を使い切って失敗したジョブ)を一覧表示します。

PHP
$buried = Queuety::buried(); // all queues
$buried = Queuety::buried( 'emails' ); // specific queue

再試行します。

PHP
Queuety::retry( $job_id );       // retry a specific job
Queuety::retry_buried();         // retry all buried jobs

完了したジョブの削除

データベースを整理するため、古い完了済みジョブを削除します。

PHP
$count = Queuety::purge();     // uses QUEUETY_RETENTION_DAYS (default: 7)
$count = Queuety::purge( 30 ); // purge jobs older than 30 days

CLI経由で確認します。

シェル
wp queuety purge
wp queuety purge --older-than=30