Керування чергами
Queuety підтримує кілька іменованих черг. Кожен робочий процес обробляє одну чергу або впорядкований список черг (див. Робочі процеси), а черги можна призупиняти й відновлювати незалежно одна від одної.
Іменовані черги
Надсилайте завдання до певних черг:
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. Якщо не вказати чергу, завдання потраплятимуть до неї.
Призупинення та відновлення
Призупиніть чергу, щоб робочі процеси не брали нові завдання. Завдання, обробка яких уже почалася, буде завершено, але нові завдання не надходитимуть в обробку.
Queuety::pause( 'emails' );
Queuety::resume( 'emails' );
Перевірте, чи призупинено чергу:
if ( Queuety::is_paused( 'emails' ) ) {
// Queue is paused
}
Через CLI:
wp queuety pause emails
wp queuety resume emails
Це зручно під час розгортання або технічного обслуговування, коли потрібно тимчасово зупинити обробку, не завершуючи робочий процес.
Статистика черг
Отримайте кількість завдань у кожному статусі:
$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
Відкладені завдання
Перегляньте всі відкладені завдання (помилки після вичерпання повторних спроб):
$buried = Queuety::buried(); // all queues
$buried = Queuety::buried( 'emails' ); // specific queue
Повторіть спробу:
Queuety::retry( $job_id ); // retry a specific job
Queuety::retry_buried(); // retry all buried jobs
Видалення завершених завдань
Видаляйте застарілі завершені завдання, щоб база даних залишалася чистою:
$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