Проблема кеширования Eclipselink (одна база данных для двух систем) - PullRequest
4 голосов
/ 02 сентября 2011

У меня работает две онлайн-системы.Они оба используют eclipselink.

Первая система - это система администрирования, в которой управляются цены для второго приложения.Вторая система - это интернет-магазин, где покупатель может покупать товары.Оба они работают на одном и том же сервере и используют одну и ту же базу данных Oracle.

Для обеспечения быстрого доступа к объектам цены кешируется eclipselink.

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

1 Ответ

2 голосов
/ 24 сентября 2011

У меня похожая проблема, но она связана с учетными данными пользователя.

1) Настройка кэширования в магазине

Вы можете сконфигурировать кеширование EclipseLink для истечения срока его действия. Вы можете настроить его, чтобы иметь TimeToLive или истекает в значении. Например, вы можете настроить срок действия цены через 1, 5 или 10 минут. Не мгновенно, но довольно быстро и очень легко реализовать. Проверьте аннотацию @Cache в EclipseLink. Это то, чем я в конечном итоге воспользовался.

2) Приложение администратора должно связаться с приложением магазина

Возможно, стоит создать веб-сервис, который будет находиться на стороне магазина, который будет аннулировать кеш при вызове. В некотором роде хрупкий, но может потребоваться в зависимости от ваших настроек.

3) Использовать координацию кэша

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

...