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:
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:
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.
Queuety::pause( 'emails' );
Queuety::resume( 'emails' );
Controleer of een wachtrij is gepauzeerd:
if ( Queuety::is_paused( 'emails' ) ) {
// Queue is paused
}
Via CLI:
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:
$stats = Queuety::stats(); // all queues
$stats = Queuety::stats( 'emails' ); // specific queue
// Returns: ['pending' => 12, 'processing' => 3, 'completed' => 150, 'failed' => 2, 'buried' => 1]
Via CLI:
wp queuety status
wp queuety status --queue=emails
Begraven taken
Geef alle begraven taken weer (mislukt nadat alle nieuwe pogingen zijn verbruikt):
$buried = Queuety::buried(); // all queues
$buried = Queuety::buried( 'emails' ); // specific queue
Probeer ze opnieuw:
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:
$count = Queuety::purge(); // uses QUEUETY_RETENTION_DAYS (default: 7)
$count = Queuety::purge( 30 ); // purge jobs older than 30 days
Via CLI:
wp queuety purge
wp queuety purge --older-than=30