У меня есть таблица в базе данных со списком элементов, которые необходимо проверить (почтовые ящики imap).Список является динамическим и может изменяться в любое время с добавлением или удалением пользователей.Я создал службу Windows (в .Net), которая читает таблицу, чтобы получить все проверяемые почтовые ящики, и обрабатывает все найденные новые письма.
Моя первая попытка состояла в том, чтобы заполнить очередь элементами дляобработайте и затем каждые несколько минут проверяйте таблицу на предмет изменений, очищая очередь и повторно добавляя в нее элементы.Я использовал конечное число потоков, которые удаляют из очереди и затем ставят в очередь элементы из списка после завершения обработки.
Проблемы, которые я обнаружил, заключались в медленной утечке памяти, которую я смог решить только путем очистки очереди один раз (при запускеслужбы) и, следовательно, необходимость перезапуска службы, если и произошли изменения в моей таблице базы данных.Вторая проблема заключается в невозможности выяснить, как отслеживать, если мой конечный список потоков все еще работает.
Есть мысли?