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