Политика кэширования на стороне клиента для медленной и ненадежной службы - PullRequest
0 голосов
/ 17 февраля 2011

Я пытаюсь найти лучший способ кэшировать медленный и ненадежный сервис. Прямо сейчас, каждый раз, когда сервис отключается, все запросы страниц начинают занимать много времени, потому что кеш никогда не заполняется, и сервис запрашивается каждый раз. Сервис не предоставляет данные, которые необходимы для страницы. Как мне кэшировать это, чтобы оно работало хорошо для меня?

Я не думаю, что это действительно имеет значение, но я использую PHP 5 и сервис SOAP.

Ответы [ 3 ]

0 голосов
/ 27 марта 2013

Я сейчас внедряю кеш веб-сервиса для php.

Это не ракетостроение. Все, что нужно, - это постоянство (я выбираю sqlite, потому что доступ к файлу sqlite быстрее, чем к «обычному» файлу. RAMdisk, вероятно, был бы даже быстрее) и простой класс или функцию, которая контролирует доступ к постоянству для чтения и записи. *

Использование файла вместо вызова службы экономит около 95% времени:)

0 голосов
/ 10 мая 2016

Пять лет спустя Netflix решил эту проблему с помощью своей очень полезной библиотеки "Hystrix".

https://github.com/Netflix/Hystrix

0 голосов
/ 18 февраля 2011

Я сериализую () полученную структуру данных и запишу ее в файл.

Если приложение PHP запрашивает новые данные, я бы десериализировал () данные из файла и возвращал их напрямую. Через некоторое время следующий запрос перезагружает ресурс с удаленного компьютера и снова выполняет serialize () в файл.

Обновление:

Как насчет внедрения авансом на каждую релевантную страницу некоторых данных Json по умолчанию, которые клиент использует в качестве ответа , если служба не отвечает достаточно быстро?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...