|
![]() |
#1 |
Banned
|
Да, вы правы. Коллизия не исключена, поскольку ClassFactory существует в двух "ипостасях": на клиенте и на сервере. flush... очищает кэш на сервере и текущем клиенте. Прослеживая цепочку вызовов, можно видеть что методы Currency::amountCur2MST() -> Currency::exchRate() -> ExchRates::exchRateCache() все объявлены как "Called from". Т.е. описанная вами ситуация вполне может возникнуть, если второй клиент успел запомнить в кеше старое значение и запускает некую функцию, которая работает не на сервере. Баг. Пишите авторам.
|
|
![]() |
#2 |
Участник
|
спасибо за поддержку. дополню:
дело даже не в том, что второй клиент успел запомнить в кэше на клиенте старый курс, а в том, что методы ExchRates::flushCacheServer() и ExchRates::flushCacheClient() очищают переменную класса ClassFactory только ПЕРВОГО клиента, где и была произведена смена курса ![]() В свете этого уже не важно, на клиенте или на сервере выполняется функциональность второго клиента - он так и останется со старым курсом. Опять же: поправьте меня, если я заблуждаюсь.
__________________
С уважением, Tony Green |
|
Теги |
кэширование, курс |
|
![]() |
||||
Тема | Ответов | |||
Загрузка валют с сайта ЦБ | 31 | |||
Загрузка курсов валют | 5 | |||
Закачка курсов валют с Интернета. | 1 | |||
Как попороть автоматическое кэширование PriceDiscTable? | 2 | |||
Валюты и курсы валют | 1 |
|