В моем проекте я использую SharedCache в качестве механизма распределенного кэширования. Существует несколько экземпляров службы, развернутой в веб-ферме, которая обращается к этим кэшированным данным. Кэшируемые данные являются временными и могут иметь обновления. Я хотел бы знать, есть ли способ синхронизировать доступ к данным между двумя или более службами?
В качестве примера приведем сценарий, представьте, что запущено 2 экземпляра службы. Оба экземпляра обращаются к общему кешу. Если один сервис забирает некоторые данные из кэша для обработки, я бы хотел, чтобы другой сервис не брал ту же информацию. Для этого мне нужно обновить кеш, указав статус недоступен. Но в то время как я обновляю статус, может случиться так, что второй сервис также может выбрать те же данные.
Документирование общего кэша безопасность потоков предполагает, что данные доступны глобально и не являются потокобезопасными. Есть ли способ сделать его потокобезопасным без изменения исходного кода SharedCache?