В этом случае я бы определенно кэшировал результаты с сайта дистрибьютора в течение некоторого промежутка времени, а не нажимал бы их каждый раз, когда вы получаете запрос. Однако я не просто использовал бы общий 5-минутный или 30-минутный тайм-аут для всех записей кэша. Вместо этого я бы использовал некоторые эвристики. Если возможно, например, если ваше приложение написано на языке, подобном Python, вы можете прикрепить простой скрипт к каждому продукту, который реализует тайм-аут.
Таким образом, если это элемент, который запрашивается нечасто, или тот, у которого есть большой запас на складе, вы можете кэшировать его в течение более длительного времени.
if product.popularityrating > 8 or product.lastqtyinstock < 20:
cache.expire(productnum)
distributor.checkstock(productnum)
Это дает вам гибкость, к которой вы можете обратиться, если вам это нужно. Изначально вы можете установить все правила на что-то вроде:
cache.expireover("3m",productnum)
distributor.checkstock(productnum)
На самом деле, сценарий, вероятно, не будет включать вызов функции checktock, потому что это будет в основном приложении, но он включен здесь для контекста. Если Python кажется слишком тяжелым, чтобы включать только это небольшое количество гибкости, то взгляните на TCL, который был специально разработан для этого типа работы. Оба могут быть легко встроены в приложения C, C ++, C # и Java.