Към съдържанието

Регистриране

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 Автоматично увеличаващ се идентификатор
event Низ за типа на събитието
handler Име или клас на обработчика
job_id Идентификатор на свързаната задача (може да е null)
workflow_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 );