Protokolování
Queuety zaznamenává každou událost úlohy a pracovního postupu do databázové tabulky queuety_logs. Žádné soubory protokolu se nepoužívají. Všechny položky lze vyhledávat pomocí PHP API a CLI.
Typy událostí
Každá položka protokolu má typ události z výčtu LogEvent:
| Událost | Popis |
|---|---|
started |
Spuštěno zpracování úlohy |
completed |
Úloha byla úspěšně dokončena |
failed |
Pokus vyvolal výjimku a bude opakován (u posledního pokusu se zaznamená pouze buried) |
buried |
Úloha vyčerpala všechny pokusy o opakování |
retried |
Opakování úlohy bylo naplánováno |
workflow_started |
Byl spuštěn pracovní postup |
workflow_completed |
Všechny kroky pracovního postupu byly dokončeny |
workflow_failed |
Krok pracovního postupu trvale selhal |
workflow_paused |
Pracovní postup byl pozastaven |
workflow_resumed |
Pracovní postup byl obnoven |
workflow_cancelled |
Pracovní postup byl zrušen |
workflow_rewound |
Pracovní postup se vrátil k dřívějšímu kroku |
workflow_forked |
Pracovní postup byl rozvětven do nového pracovního postupu |
workflow_deadline_exceeded |
Pracovní postup zmeškal termín must_complete_within() |
debug |
Zpráva na úrovni ladění (je-li zapnuto QUEUETY_DEBUG) |
Pole protokolu
Každá položka protokolu obsahuje:
| Pole | Popis |
|---|---|
id |
Automaticky zvyšované ID |
event |
Řetězec typu události |
handler |
Název obslužné rutiny nebo třída |
job_id |
ID související úlohy (může být null) |
workflow_id |
ID souvisejícího pracovního postupu (může být null) |
step_index |
Index kroku pracovního postupu (může být null) |
attempt |
Číslo pokusu |
duration_ms |
Doba zpracování v milisekundách |
error_message |
Chybová zpráva při selhání |
created_at |
Časové razítko |
Dotazování protokolů přes 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 );
Dotazování protokolů přes 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
Uchovávání protokolů
Protokoly zůstávají uložené, dokud je nevymažete. Konstantu QUEUETY_LOG_RETENTION_DAYS načítá Config::log_retention_days(), ale zatím ji nic nepoužívá, takže se podle ní nic nemaže (#15). Nelze spustit ani podřízený příkaz wp queuety log purge (#11).
Protokoly vymažte z PHP, například ve vlastní naplánované úloze nebo pomocí wp eval:
PHP
$count = Queuety::logger()->purge( 30 );