политика ResponseCache Apigee автоматически кэширует весь ответ в время, когда политика встречается в потоке ответов. Я не верю, что есть какая-либо доступная переменная, которая содержит время помещения ответа в кеш. Однако есть способ добиться этого.
Во-первых, я подытожу поток ResponseCache. Скажем, у нас есть политика ResponseCache RC1. Вы помещаете его как в поток запросов, так и в поток ответов. Вот схема:
-->[P]-->[P]-->[P]-->[RC1]-->[P*]-->[P*]-->[P*]-->
CLIENT v TARGET
<--[P]<--[P]<--[P]<--[RC1]<--[P*]<--[P*]<--[P*]<--
Когда поток достигает RC1 в потоке запросов, ключ кэша уже создан, и кэш ответов проверяется на наличие соответствующего кэшированного ответа.
В случае промаха кеша будут запущены все политики (P, P* и RC1). Когда в потоке ответов достигается RC1, весь ответ сохраняется в кэше, и поток продолжается.
При попадании в кэш будут запущены только политики P и RC1. Политики P* будут пропущены, и обращение к целевому серверу выполняться не будет.
В отличие от политики Cache, вы не можете определить, что помещается в кэш для ResponseCache. Это весь ответ. Однако вы можете добавить свои данные, добавив их в ответ.
В вашем случае прямо перед вызовом политики ответа RC1 в потоке ответа добавьте заголовок ответа с текущим временем (system.time). Ответ будет кэширован с вашим пользовательским заголовком. Затем, после политики ответа RC1, извлеките и удалите заголовок времени из ответа. Используя текущее системное время, вы также можете рассчитать, как долго ответ находился в кеше.
person
Mike Dunker
schedule
30.01.2014