Treci la conținut

Jurnalizare

Queuety înregistrează fiecare eveniment asociat sarcinilor și fluxurilor de lucru în tabelul queuety_logs din baza de date. Nu există fișiere jurnal. Toate înregistrările pot fi interogate prin PHP API și CLI.

Tipuri de evenimente

Fiecare înregistrare din jurnal are un tip de eveniment din enumerarea LogEvent:

Eveniment Descriere
started A început execuția sarcinii
completed Sarcina s-a încheiat cu succes
failed O încercare a generat o excepție și va fi reluată (încercarea finală înregistrează numai buried)
buried Sarcina a epuizat toate încercările de reluare
retried Sarcina a fost programată pentru reluare
workflow_started Fluxul de lucru a fost lansat
workflow_completed Toți pașii fluxului de lucru s-au încheiat
workflow_failed Pasul fluxului de lucru a eșuat definitiv
workflow_paused Fluxul de lucru a fost suspendat
workflow_resumed Fluxul de lucru a fost reluat
workflow_cancelled Fluxul de lucru a fost anulat
workflow_rewound Fluxul de lucru a revenit la un pas anterior
workflow_forked Fluxul de lucru a fost ramificat într-un flux nou
workflow_deadline_exceeded Fluxul de lucru a depășit termenul-limită must_complete_within()
debug Mesaj de nivel depanare (când QUEUETY_DEBUG este activat)

Câmpurile jurnalului

Fiecare înregistrare din jurnal conține:

Câmp Descriere
id ID cu incrementare automată
event Șirul tipului de eveniment
handler Numele handlerului sau al clasei
job_id ID-ul sarcinii asociate (poate fi nul)
workflow_id ID-ul fluxului de lucru asociat (poate fi nul)
step_index Indexul pasului fluxului de lucru (poate fi nul)
attempt Numărul încercării
duration_ms Durata execuției în milisecunde
error_message Mesajul de eroare, dacă a eșuat
created_at Marcaj temporal

Interogarea jurnalelor prin PHP

PHP
$logger = Queuety::logger();

// Logs for a specific job
$logs = $logger->for_job( 42 );

// Logs for a specific workflow
$logs = $logger->for_workflow( 7 );

// Logs for a specific handler
$logs = $logger->for_handler( 'send_email', 50 );

// Logs for a specific event type
$logs = $logger->for_event( \Queuety\Enums\LogEvent::Failed, 50 );

// Logs since a datetime
$logs = $logger->since( new \DateTimeImmutable( '-1 hour' ), 100 );

Interogarea jurnalelor prin CLI

Shell
# Recent logs (last 24 hours)
wp queuety log

# Logs for a specific job
wp queuety log --job=42

# Logs for a specific workflow
wp queuety log --workflow=7

# Logs for a handler
wp queuety log --handler=send_email

# Logs for an event type
wp queuety log --event=failed

# Logs since a datetime
wp queuety log --since="2025-01-01 00:00:00"

# Custom limit and format
wp queuety log --limit=100 --format=json

Păstrarea jurnalelor

Jurnalele sunt păstrate până când le ștergeți. Constanta QUEUETY_LOG_RETENTION_DAYS este citită de Config::log_retention_days(), dar momentan nu o folosește nimic, așa că nu șterge nimic (#15). Nici subcomanda wp queuety log purge nu poate fi accesată (#11).

Ștergeți din PHP, de exemplu din propria sarcină programată sau cu wp eval:

PHP
$count = Queuety::logger()->purge( 30 );