То, как вы используете кэш L2, может привести к несогласованности данных, поскольку ваше приложение использует несколько фабрик сессий и, следовательно, оно распределено и нуждается в распределенном кеше .
Вот как выглядит ваша система
ИЛИ
В качестве альтернативы вы можете иметь центральный сервер memcache, который каждый из клиентов (споможет memcached клиент ).(Один memcached используется всеми пользователями)
Основное требование заключается в том, чтобы изменения , зафиксированные одним пользователем / фабрикой сеансов, были видны другим пользователям / фабрике сеансов для использования кэша.Приведенный вами пример кода бесполезен, поскольку он очищает кэш L2 каждый раз при совершении транзакции. В любом случае это делается кешем L2 или кешем сессии .
, поэтому мои предложения будут
- Не используйте кэш L2 вообще, следовательно, нет локального memcache.Вы все равно не используете его, так как очищаете кеш после каждой транзакции.
- Если вообще необходим кэш L2, используйте распределенный кеш (что немного сложнее) ИЛИ используйте один сервер memcached для всех.
Пожалуйста, проверьте эту ссылку .