У меня есть приложение, которое взаимодействует с несколькими внутренними и внешними источниками, используя службы SOAP, REST или просто хранимые процедуры базы данных. Очевидно, что производительность и стабильность являются основными проблемами, с которыми я имею дело. Даже когда конечные точки работают наилучшим образом, для больших наборов данных я легко вижу вызовы, которые занимают 10 секунд.
Итак, я пытаюсь улучшить производительность своего приложения, предварительно выбирая данные и сохраняя их локально, чтобы, по крайней мере, операции чтения выполнялись быстро.
Хотя мое приложение является основным потребителем и производителем данных, некоторые данные также могут изменяться вне моего приложения, что я не могу контролировать. Если бы я использовал кеширование, я бы никогда не знал, когда сделать кеш недействительным, когда такие данные изменяются вне моего приложения.
Поэтому я думаю, что мой единственный вариант - запустить планировщик заданий, который постоянно обновляет базу данных. Я мог бы расставить приоритеты пользователей в зависимости от того, как часто они входят в приложение и используют его.
Я говорю о 50 тысячах пользователей и как минимум 10 конечных точках, которые ужасно медленные и иногда могут занимать минуту для одного звонка. Может ли что-то вроде Quartz дать мне нужный мне масштаб? И как мне обойти график, ставший единственной точкой отказа?
Я просто ищу что-то, что не требует сложного обслуживания и ускоряет хотя бы некоторые из менее сложных подсистем, если не большинство. Какие-либо предложения?