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:
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:
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.
Queuety::pause( 'emails' );
Queuety::resume( 'emails' );
Zjištění, zda je fronta pozastavená:
if ( Queuety::is_paused( 'emails' ) ) {
// Queue is paused
}
Pomocí CLI:
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:
$stats = Queuety::stats(); // all queues
$stats = Queuety::stats( 'emails' ); // specific queue
// Returns: ['pending' => 12, 'processing' => 3, 'completed' => 150, 'failed' => 2, 'buried' => 1]
Pomocí CLI:
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ů):
$buried = Queuety::buried(); // all queues
$buried = Queuety::buried( 'emails' ); // specific queue
Opakování jejich spuštění:
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á:
$count = Queuety::purge(); // uses QUEUETY_RETENTION_DAYS (default: 7)
$count = Queuety::purge( 30 ); // purge jobs older than 30 days
Pomocí CLI:
wp queuety purge
wp queuety purge --older-than=30