Коллектор очередей
Захватывает операции с очередями сообщений — отправленные сообщения, статус обработки, ошибки и обнаружение дубликатов.

Собираемые данные
| Поле | Описание |
|---|---|
pushes | Сообщения, отправленные в очереди, сгруппированные по имени очереди |
statuses | Обновления статуса сообщений (идентификатор и статус) |
processingMessages | Сообщения, находящиеся в обработке |
messages | Отправленные/обработанные сообщения с метаданными |
messageCount | Общее количество сообщений |
failedCount | Количество сообщений с ошибками |
Схема данных
{
"pushes": {
"default": [...]
},
"statuses": [
{"id": "msg-1", "status": "handled"}
],
"processingMessages": {},
"messages": [...],
"messageCount": 3,
"failedCount": 0,
"duplicates": {
"groups": [],
"totalDuplicatedCount": 0
}
}Сводка (отображается в списке отладочных записей):
{
"queue": {
"countPushes": 2,
"countStatuses": 1,
"countProcessingMessages": 0,
"messageCount": 3,
"failedCount": 0,
"duplicateGroups": 0,
"totalDuplicatedCount": 0
}
}Контракт
use AppDevPanel\Kernel\Collector\QueueCollector;
use AppDevPanel\Kernel\Collector\MessageRecord;
// Log a dispatched/handled message
$collector->logMessage(new MessageRecord(
class: 'App\\Message\\SendNotification',
status: 'dispatched',
queue: 'default',
handlerClass: 'App\\Handler\\NotificationHandler',
));
// Or use individual methods
$collector->collectPush(queueName: 'default', message: $message);
$collector->collectStatus(id: 'msg-1', status: 'handled');INFO
QueueCollectorAppDevPanel\Kernel\Collector\QueueCollectorCaptures message queue and message bus operations. реализует SummaryCollectorInterfaceAppDevPanel\Kernel\Collector\SummaryCollectorInterfaceSummary data collector responsibility is to collect summary data for a collector. Summary is used to display a list of previous requests and select one to display full info. Its data set is specific to the list and is reduced compared to full data collected in {@see CollectorInterface}., зависит от TimelineCollectorAppDevPanel\Kernel\Collector\TimelineCollectorCollects Timeline data during application lifecycle. и использует DuplicateDetectionTraitAppDevPanel\Kernel\Collector\DuplicateDetectionTraitDetects duplicate items in collector data by grouping them by a key..
Как это работает
Адаптеры фреймворков перехватывают операции шины сообщений/очереди:
- Symfony: middleware и слушатели событий Messenger
- Laravel: слушатели событий очереди (
JobProcessing,JobProcessed,JobFailed) - Yii 3: прокси-декоратор очереди
Панель отладки
- Список сообщений — все отправленные и обработанные сообщения со статусом
- Группировка по очередям — сообщения сгруппированы по имени очереди
- Бейджи статусов — отправлено (синий), обработано (зелёный), ошибка (красный)
- Обнаружение дубликатов — подсветка повторяющихся идентичных сообщений