Přejít k obsahu

Správa front

Queuety podporuje více pojmenovaných front. Každý worker zpracovává jednu frontu nebo seřazený seznam front (viz Workeři) a fronty lze nezávisle pozastavovat a obnovovat.

Pojmenované fronty

Odesílání úloh do konkrétních front:

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

Spuštění workerů pro jednotlivé fronty:

Shell
wp queuety work --queue=emails
wp queuety work --queue=media
wp queuety work --queue=sync

Výchozí fronta je default. Pokud frontu neurčíte, úlohy se zařadí do ní.

Pozastavení a obnovení

Pozastavením fronty zastavíte workery, aby nepřebírali nové úlohy. Úlohy, které se již zpracovávají, se dokončí, ale žádné nové se nepřevezmou.

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

Zjištění, zda je fronta pozastavená:

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

Pomocí CLI:

Shell
wp queuety pause emails
wp queuety resume emails

To se hodí při nasazení nebo údržbě, když chcete dočasně zastavit zpracování, aniž byste ukončili workera.

Statistiky fronty

Získání počtu úloh seskupených podle stavu:

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

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

Pomocí CLI:

Shell
wp queuety status
wp queuety status --queue=emails

Úlohy v karanténě

Výpis všech úloh v karanténě (selhaly po vyčerpání opakovaných pokusů):

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

Opakování jejich spuštění:

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

Mazání dokončených úloh

Odstraňte staré dokončené úlohy, aby databáze zůstala přehledná:

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

Pomocí CLI:

Shell
wp queuety purge
wp queuety purge --older-than=30