Beleženje
Queuety beleži vsak dogodek opravila in poteka dela v tabelo zbirke podatkov queuety_logs. Dnevniških datotek ni. Po vseh vnosih lahko poizvedujete prek PHP API in CLI.
Vrste dogodkov
Vsak vnos v dnevnik ima vrsto dogodka iz enumeracije LogEvent:
| Dogodek | Opis |
|---|---|
started |
Izvajanje opravila se je začelo |
completed |
Opravilo se je uspešno zaključilo |
failed |
Poskus je sprožil izjemo in bo ponovljen (končni poskus beleži samo buried) |
buried |
Opravilo je izčrpalo vse poskuse ponovitve |
retried |
Opravilo je bilo načrtovano za ponovni poskus |
workflow_started |
Potek dela je bil odpremljen |
workflow_completed |
Vsi koraki poteka dela so se zaključili |
workflow_failed |
Korak poteka dela je trajno spodletel |
workflow_paused |
Potek dela je bil začasno ustavljen |
workflow_resumed |
Potek dela se je nadaljeval |
workflow_cancelled |
Potek dela je bil preklican |
workflow_rewound |
Potek dela je bil vrnjen na prejšnji korak |
workflow_forked |
Iz poteka dela je bil ustvarjen nov potek dela |
workflow_deadline_exceeded |
Potek dela je zamudil rok must_complete_within() |
debug |
Sporočilo na ravni razhroščevanja (ko je omogočen QUEUETY_DEBUG) |
Polja dnevnika
Vsak vnos v dnevniku vsebuje:
| Polje | Opis |
|---|---|
id |
Samodejno povečevanje ID-ja |
event |
Niz vrste dogodka |
handler |
Ime obravnavalnika ali razred |
job_id |
Povezani ID opravila (lahko je prazen) |
workflow_id |
Povezani ID poteka dela (lahko je prazen) |
step_index |
Indeks koraka poteka dela (lahko je prazen) |
attempt |
Številka poskusa |
duration_ms |
Trajanje izvajanja v milisekundah |
error_message |
Sporočilo o napaki, če je prišlo do napake |
created_at |
Časovni žig |
Poizvedovanje po dnevnikih prek 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 );
Poizvedovanje po dnevnikih prek CLI
Lupina
# 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
Hramba dnevnikov
Dnevniki se hranijo, dokler jih ne izbrišete. Konstanto QUEUETY_LOG_RETENTION_DAYS prebere Config::log_retention_days(), vendar je za zdaj nič ne uporablja, zato ne izbriše ničesar (#15). Podukazu wp queuety log purge prav tako ni mogoče dostopati (#11).
Izbrišite jih prek PHP, na primer z lastnim načrtovanim opravilom ali z wp eval:
PHP
$count = Queuety::logger()->purge( 30 );