Журналювання
Queuety записує кожну подію завдання та робочого процесу в таблицю бази даних queuety_logs. Файлів журналу немає. Усі записи можна переглядати через PHP API і CLI.
Типи подій
Кожен запис журналу має тип події з переліку LogEvent:
| Подія | Опис |
|---|---|
started |
Виконання завдання розпочато |
completed |
Завдання успішно завершено |
failed |
Спроба завершилася винятком і буде повторена (для останньої спроби записується лише buried) |
buried |
Усі спроби повторного виконання завдання вичерпано |
retried |
Повторне виконання завдання заплановано |
workflow_started |
Робочий процес запущено |
workflow_completed |
Усі етапи робочого процесу завершено |
workflow_failed |
Етап робочого процесу остаточно завершився помилкою |
workflow_paused |
Робочий процес призупинено |
workflow_resumed |
Робочий процес відновлено |
workflow_cancelled |
Робочий процес скасовано |
workflow_rewound |
Робочий процес повернуто до попереднього етапу |
workflow_forked |
Робочий процес відгалужено в новий робочий процес |
workflow_deadline_exceeded |
Робочий процес пропустив крайній термін must_complete_within() |
debug |
Повідомлення рівня налагодження (коли увімкнено QUEUETY_DEBUG) |
Поля журналу
Кожен запис журналу містить:
| Поле | Опис |
|---|---|
id |
Автоматично збільшуваний ID |
event |
Рядок типу події |
handler |
Назва обробника або клас |
job_id |
ID пов’язаного завдання (може бути null) |
workflow_id |
ID пов’язаного робочого процесу (може бути null) |
step_index |
Індекс етапу робочого процесу (може бути null) |
attempt |
Номер спроби |
duration_ms |
Тривалість виконання в мілісекундах |
error_message |
Повідомлення про помилку, якщо сталася помилка |
created_at |
Мітка часу |
Запити до журналів через 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 );
Запити до журналів через CLI
Командна оболонка
# 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
Зберігання журналів
Журнали зберігаються, доки ви їх не очистите. Константу QUEUETY_LOG_RETENTION_DAYS читає Config::log_retention_days(), але наразі її ніде не використовують, тому вона нічого не очищає (#15). Підкоманду wp queuety log purge також неможливо викликати (#11).
Очищайте журнали через PHP, наприклад за допомогою власного запланованого завдання або wp eval:
PHP
$count = Queuety::logger()->purge( 30 );