Раньше я работал в компании, которая производит медицинское программное обеспечение, и у нас было приложение, которое должно было следить за врачами и заказами и постоянно обновляться. Мы использовали таймер, как вы описали выше. В нем были некоторые дополнительные компоненты - например, мы могли изменить частоту дискретизации в программном обеспечении, чтобы в загруженное время мы могли пинговать БД чаще, в более медленное время - реже. Кэширование также было реализовано. Существовала также система, которая сначала извлекала меньший объем данных, а затем извлекал больше только при необходимости. Например, если врач не делал обходы с момента последнего обновления, тогда не нужно было проверять, обновлялись ли данные пациента. Вещи, как это.