Ga naar de inhoud

Wachtrijbeheer

Queuety ondersteunt meerdere wachtrijen met een naam. Elke worker verwerkt één wachtrij of een geordende lijst met wachtrijen (zie Workers), en wachtrijen kunnen onafhankelijk worden gepauzeerd en hervat.

Wachtrijen met een naam

Verstuur taken naar specifieke wachtrijen:

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

Start workers voor elke wachtrij:

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

De standaardwachtrij is default. Als u geen wachtrij opgeeft, gaan taken daarheen.

Pauzeren en hervatten

Pauzeer een wachtrij om te voorkomen dat workers nieuwe taken ophalen. Taken die al worden verwerkt, worden afgerond, maar er worden geen nieuwe taken opgehaald.

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

Controleer of een wachtrij is gepauzeerd:

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

Via CLI:

Shell
wp queuety pause emails
wp queuety resume emails

Dit is handig tijdens implementaties of onderhoudsvensters, wanneer u de verwerking tijdelijk wilt stoppen zonder de worker te beëindigen.

Wachtrijstatistieken

Haal aantallen taken op, gegroepeerd op status:

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

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

Via CLI:

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

Begraven taken

Geef alle begraven taken weer (mislukt nadat alle nieuwe pogingen zijn verbruikt):

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

Probeer ze opnieuw:

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

Voltooide taken opschonen

Verwijder oude voltooide taken om de database schoon te houden:

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

Via CLI:

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