Przejdź do treści

Zarządzanie kolejkami

Queuety obsługuje wiele nazwanych kolejek. Każdy proces roboczy obsługuje jedną kolejkę lub uporządkowaną listę kolejek (zob. Procesy robocze), a każdą kolejkę można niezależnie wstrzymywać i wznawiać.

Nazwane kolejki

Przekazuj zadania do określonych kolejek:

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' );

Uruchamiaj procesy robocze dla każdej kolejki:

Powłoka
wp queuety work --queue=emails
wp queuety work --queue=media
wp queuety work --queue=sync

Domyślna kolejka to default. Jeśli nie określisz kolejki, zadania trafią właśnie do niej.

Wstrzymywanie i wznawianie

Wstrzymaj kolejkę, aby zatrzymać procesy robocze przed pobieraniem nowych zadań. Zadania, które są już przetwarzane, zostaną ukończone, ale nie będą pobierane nowe.

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

Sprawdź, czy kolejka jest wstrzymana:

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

Za pomocą CLI:

Powłoka
wp queuety pause emails
wp queuety resume emails

Przydaje się to podczas wdrożeń lub przerw konserwacyjnych, gdy chcesz tymczasowo zatrzymać przetwarzanie bez wyłączania procesu roboczego.

Statystyki kolejek

Pobierz liczbę zadań pogrupowanych według stanu:

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

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

Za pomocą CLI:

Powłoka
wp queuety status
wp queuety status --queue=emails

Zadania w archiwum

Wyświetl listę wszystkich zadań w archiwum (niepowodzenie po wyczerpaniu prób ponowienia):

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

Ponów je:

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

Usuwanie ukończonych zadań

Usuń stare, ukończone zadania, aby utrzymać porządek w bazie danych:

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

Za pomocą CLI:

Powłoka
wp queuety purge
wp queuety purge --older-than=30