У меня есть служба .NET Windows с таймером с интервалом в 10 секунд. Каждые 10 секунд он запрашивает у базы данных любую работу, которую нужно выполнить, выбирает 3 основных рабочих элемента и обрабатывает их. Время, необходимое для обработки каждого рабочего элемента, будет зависеть от пользователя. Это может быть от нескольких секунд до нескольких минут.
Я считаю, что 10 секунд - это слишком мало. Я выбрал небольшой интервал, поскольку пользователь ожидает завершения процесса (они видят индикатор выполнения в интерфейсе), и чем быстрее служба выполнит работу, тем лучше. Кроме того, случайным образом было выбрано количество рабочих элементов (три).
В моем коде есть «lock (this)», чтобы один поток не переступал через другой. Допустима ли короткая продолжительность в 10 секунд в производственной среде?
РЕДАКТИРОВАТЬ. Кроме того, есть ли смысл в том, что я каждый раз выбираю только 3 элемента для обработки.