Preskočiť na obsah

Protokolovanie

Queuety zaznamenáva každú udalosť úlohy a pracovného postupu do databázovej tabuľky queuety_logs. Žiadne súbory protokolov sa nevytvárajú. Všetky záznamy možno vyhľadávať pomocou PHP API a CLI.

Typy udalostí

Každý záznam protokolu má typ udalosti z výčtu LogEvent:

Udalosť Opis
started Začalo sa vykonávanie úlohy
completed Úloha sa úspešne dokončila
failed Pri pokuse došlo k výnimke a pokus sa zopakuje (pri poslednom pokuse sa zaznamená iba buried)
buried Úloha vyčerpala všetky opakované pokusy
retried Opakovanie úlohy bolo naplánované
workflow_started Pracovný postup bol spustený
workflow_completed Všetky kroky pracovného postupu sa dokončili
workflow_failed Krok pracovného postupu natrvalo zlyhal
workflow_paused Pracovný postup bol pozastavený
workflow_resumed Pracovný postup bol obnovený
workflow_cancelled Pracovný postup bol zrušený
workflow_rewound Pracovný postup sa vrátil k predchádzajúcemu kroku
workflow_forked Pracovný postup sa rozvetvil do nového pracovného postupu
workflow_deadline_exceeded Pracovný postup zmeškal termín must_complete_within()
debug Správa úrovne ladenia (keď je povolené QUEUETY_DEBUG)

Polia protokolu

Každý záznam protokolu obsahuje:

Pole Opis
id Automaticky zvyšované ID
event Reťazec typu udalosti
handler Názov obslužnej rutiny alebo trieda
job_id Súvisiace ID úlohy (môže byť null)
workflow_id Súvisiace ID pracovného postupu (môže byť null)
step_index Index kroku pracovného postupu (môže byť null)
attempt Číslo pokusu
duration_ms Trvanie vykonávania v milisekundách
error_message Chybová správa v prípade zlyhania
created_at Časová značka

Vyhľadávanie protokolov cez 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 );

Vyhľadávanie protokolov cez 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ávanie protokolov

Protokoly sa uchovávajú, kým ich nevymažete. Konštantu QUEUETY_LOG_RETENTION_DAYS číta Config::log_retention_days(), ale zatiaľ ju nič nepoužíva, takže nič nevymaže (#15). Nedá sa spustiť ani podpríkaz wp queuety log purge (#11).

Vymazanie vykonajte cez PHP, napríklad vo vlastnej naplánovanej úlohe alebo pomocou wp eval:

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