Перейти до вмісту

Журналювання

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