Přejít k obsahu

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