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