Перейти до вмісту

Керування чергами

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