У меня будет Queue<Message> messagesToModerate
и List<Moderator> moderators
. Когда сообщение помечено для модерации, вы добавляете его в очередь. В то же время у вас есть ModerationManagerThread, который постоянно прослушивает активность в очереди и, когда она что-то есть, отправляет ее следующему модератору в списке. Когда он доходит до конца, он просто начинается заново. Он также имеет List<Message> messagesUnderModeration
. Каждое сообщение добавляется в этот список при отправке модератору. Каждый час этот список проверяется - если сообщение было просмотрено модератором (вам понадобится флаг в объекте сообщения, что оно было доступно модератору), оно удаляется из списка. Если нет, он добавляется в очередь сообщений для отправки другому (возможно, другому) модератору.
Это должно быстро передавать ваши сообщения модераторам. Кроме того, это дает вам возможность, поскольку вы знаете, когда ваши модераторы получают к нему доступ и "блокируют" его, легко отслеживать, какие модераторы выполняют свои обязанности, а какие нет.