Как измерить время, необходимое для того, чтобы сообщение достигло очереди сообщений в RabbitMQ? - PullRequest
0 голосов
/ 16 сентября 2011

У меня есть класс продюсера, который отправляет сообщения брокеру сообщений, RabbitMQ.Я использую планировщик Quartz для отправки сообщений через равные промежутки времени.

Я хочу измерить время, необходимое для выполнения / выполнения одного задания.Как мне это сделать?

Я хочу найти среднее время, необходимое для выполнения работы за определенный период времени.Поэтому я хочу измерить каждое отдельное время, а затем найти среднее.

1 Ответ

0 голосов
/ 16 сентября 2011

Подход, который я использовал в прошлом, состоит в том, чтобы создать очередь регистрации заданий, которая принимает простую структуру данных, состоящую из имени задания, времени начала, времени окончания и после завершения каждого задания, отправлять сообщение с этой информацией.в очередь регистрации заданий.

Затем просто напишите прослушиватель, который извлекает данные из очереди регистрации заданий и либо записывает их в базу данных, обновляет структуру внутренней памяти для отчетов, отправляет электронную почту и т. Д. Все это предполагает, что у вас есть доступизменить код, который выполняет задания.

Если у вас нет доступа к рабочим местам, это будет сложнее.RabbitMQ имеет API-интерфейс подключаемого модуля, поэтому вы можете создать подключаемый модуль, который рассчитывает, сколько времени занимает выполнение каждого конкретного задания.Плагин управления rabbitmq предоставит вам приблизительные показатели, такие как количество доставленных сообщений в секунду или подтвержденных в секунду.Подтверждение обычно указывает на завершение задачи, но в зависимости от того, как вы создали код, задание может быть подтверждено до его завершения, и в этом случае единственным вариантом является изменение кода, выполняющего задание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...