Вам нужно будет поддерживать таймер ... и если операция индексирования не прекратится через 5 минут, другая начнет индексировать те же самые изменения, так что вам также придется проверить это условие.
Немного лучше - просто использовать выделенный индексирующий поток, который остается в живых. Этот поток будет извлекать изменения из последнего запуска и обрабатывать их, как вы описали, но он не будет ждать. После завершения операции индексирования она сразу же возобновит непрерывную индексацию, когда элементы находятся в.
Если для индексирования больше нет элементов, поток будет спать в течение 5 минут (а затем повторно проверять изменения, когда он просыпается).
Таким образом, вы можете быть уверены, что за один раз будет изменяться только один клиент. Это никогда не потребует много ресурсов ЦП, как это может быть в случае, если вы каким-то образом неправильно управляете таймером или вдруг получаете поток сообщений, и будут масштабироваться по мере роста вашего форума без необходимости время от времени корректировать интервал индексации. 1007 *
Вам нужно будет следить за здоровьем Нити.