Към съдържанието

Управление на опашки

Queuety поддържа множество именувани опашки. Всеки работник обработва една опашка или подреден списък с опашки (вижте Работници), а опашките могат да се поставят на пауза и възобновяват независимо.

Именувани опашки

Изпращайте задачи към конкретни опашки:

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