Я бы реализовал так:
Наличие в очереди прослушивателя очереди, который при поступлении сообщения проверяет, когда в последний раз была получена задача от данного пользователя; если время <1 сек. помещает его в очередь 1, если время <10 секунд ставит в очередь 2, если время <100 секунд ставит в очередь 3, в противном случае помещается в очередь 4. В этом случае слушатели будут иметь 4 очереди, которые будут обработка задач. </p>
Конечно, вы можете изменить количество очередей и изменить время, чтобы оно соответствовало лучшей пропускной способности. В идеале вы хотите, чтобы ваши очереди были заняты все время.