Rejestrowanie zdarzeń
Queuety zapisuje każde zdarzenie zadania i przepływu pracy w tabeli bazy danych queuety_logs. Nie ma plików dziennika. Wszystkie wpisy można wyszukiwać za pomocą PHP API i CLI.
Typy zdarzeń
Każdy wpis dziennika ma typ zdarzenia z wyliczenia LogEvent:
| Zdarzenie | Opis |
|---|---|
started |
Rozpoczęto wykonywanie zadania |
completed |
Zadanie zakończono pomyślnie |
failed |
Wystąpił wyjątek podczas próby, która zostanie ponowiona (ostatnia próba zapisuje tylko buried) |
buried |
Wykorzystano wszystkie próby ponowienia zadania |
retried |
Zaplanowano ponowienie zadania |
workflow_started |
Uruchomiono przepływ pracy |
workflow_completed |
Zakończono wszystkie kroki przepływu pracy |
workflow_failed |
Krok przepływu pracy zakończył się nieodwracalnym błędem |
workflow_paused |
Wstrzymano przepływ pracy |
workflow_resumed |
Wznowiono przepływ pracy |
workflow_cancelled |
Anulowano przepływ pracy |
workflow_rewound |
Cofnięto przepływ pracy do wcześniejszego kroku |
workflow_forked |
Rozgałęziono przepływ pracy, tworząc nowy przepływ |
workflow_deadline_exceeded |
Upłynął termin must_complete_within() przepływu pracy |
debug |
Komunikat na poziomie debugowania (gdy włączono QUEUETY_DEBUG) |
Pola dziennika
Każdy wpis dziennika zawiera:
| Pole | Opis |
|---|---|
id |
Automatycznie zwiększany identyfikator |
event |
Ciąg znaków określający typ zdarzenia |
handler |
Nazwa lub klasa obsługi |
job_id |
Powiązany identyfikator zadania (może mieć wartość null) |
workflow_id |
Powiązany identyfikator przepływu pracy (może mieć wartość null) |
step_index |
Indeks kroku przepływu pracy (może mieć wartość null) |
attempt |
Numer próby |
duration_ms |
Czas wykonania w milisekundach |
error_message |
Komunikat o błędzie, jeśli wystąpił błąd |
created_at |
Sygnatura czasowa |
Wyszukiwanie dzienników za pomocą 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 );
Wyszukiwanie dzienników za pomocą CLI
Powłoka
# 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
Przechowywanie dzienników
Dzienniki są przechowywane do czasu ich usunięcia. Stałą QUEUETY_LOG_RETENTION_DAYS odczytuje Config::log_retention_days(), ale na razie nic z niej nie korzysta, więc nie usuwa ona żadnych danych (#15). Nie można też wywołać podpolecenia wp queuety log purge (#11).
Usuwaj dane za pomocą PHP, na przykład z własnego zaplanowanego zadania lub polecenia wp eval:
PHP
$count = Queuety::logger()->purge( 30 );