Регистриране
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 );