Сеть приложений Central Cache for Winforms на нескольких компьютерах - PullRequest
0 голосов
/ 14 февраля 2020

Я использую. NET Кэш для приложения WinForms в C#. Приложение напрямую подключено к удаленному серверу базы данных (без какого-либо уровня обслуживания), и кеш поддерживается на клиентском компьютере, на котором установлено приложение.

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

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

Как мы можем реализовать центральный кеш для всех экземпляров приложений в сети?

1 Ответ

0 голосов
/ 14 февраля 2020

у нас возникла та же проблема, и мы внедрили кеш в базу данных.

(Если у вас нет сервисного уровня, вы можете использовать процедуру уровня БД или Trigger Et c ..)

Сначала мы сделали Cashe Table. например, CACHE_DATA.

И после того, как машина (более одного) выполняет DML (обновление, вставка, удаление данных), сервисный уровень (или БД) обновляет данные кэша на основе новейшей информации. так что другие машины также могут ссылаться на эту таблицу.

Если DML выполняется слишком часто, вы можете добавить «Время последнего обналичивания», отправленное в CHACHE_DATA.

If (Время последнего обналичивания

...