Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
09.08.2012, 08:09
|
|||
|---|---|---|---|
Блокировка кэша |
|||
|
#18+
Здравствуйте всем, в приложении используются объекты из кэша. Один объект используется несколькими пользователями. Если объекта в кэше нет, он сначала создается, потом кладется в кэш. При одновременном обращении пользователей возможна ситуация, когда в кэш кладутся несколько одних и тех же объектов, что не есть хорошо. Как можно заблокировать кэш, чтобы в него помещался только один объект от первого обращения к приложению? Можно ли использовать конструкцию вида lock(Cache) { .. } Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.08.2012, 09:45
|
|||
|---|---|---|---|
Блокировка кэша |
|||
|
#18+
Есть штатная блокировка Application без написания левого кода . Код: c# 1. 2. 3. А, вообще, за такую "архитектуру" по блокировке Application / Cache нужно веником по мягкому месту рядить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.08.2012, 10:50
|
|||
|---|---|---|---|
Блокировка кэша |
|||
|
#18+
МСУЕсть штатная блокировка Application без написания левого кода . Код: c# 1. 2. 3. А, вообще, за такую "архитектуру" по блокировке Application / Cache нужно веником по мягкому месту рядить. за такую точно =)) 2ТС: lock подойдёт, только нужно его правильно заиспользовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.08.2012, 10:55
|
|||
|---|---|---|---|
Блокировка кэша |
|||
|
#18+
pationза такую точно =)) А за какую не точно? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.08.2012, 11:04
|
|||
|---|---|---|---|
Блокировка кэша |
|||
|
#18+
МСУpationза такую точно =)) А за какую не точно? ) Велосипедов изобретена тьма но Application.Lock() - это жесть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.08.2012, 11:07
|
|||
|---|---|---|---|
Блокировка кэша |
|||
|
#18+
pationВелосипедов изобретена тьма но Application.Lock() - это жесть Поверь, эти велосипеды не меньшая жесть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.08.2012, 11:11
|
|||
|---|---|---|---|
Блокировка кэша |
|||
|
#18+
есть т.н. паттерн "Двойная блокировка", что вы скажете про него? private static object ThisLock = new object(); ... object dataObject = Cache["globalData"]; if( dataObject == null ) { lock( ThisLock ) { dataObject = Cache["globalData"]; if( dataObject == null ) { //Get Data from db dataObject = GlobalObj.GetData(); Cache["globalData"] = dataObject; } } } return dataObject; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.08.2012, 11:54
|
|||
|---|---|---|---|
Блокировка кэша |
|||
|
#18+
artemius, это не двойная блокировка, это гумно на постном масле. Для double checked locking нужно использовать volatile. Вот пример . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.08.2012, 12:01
|
|||
|---|---|---|---|
Блокировка кэша |
|||
|
#18+
МСУartemius, это не двойная блокировка, это гумно на постном масле. а в чем недостатки этого способа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.08.2012, 12:04
|
|||
|---|---|---|---|
Блокировка кэша |
|||
|
#18+
artemiusа в чем недостатки этого способа? Прочитай внимательно ссылку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.08.2012, 12:30
|
|||
|---|---|---|---|
Блокировка кэша |
|||
|
#18+
artemiusЗдравствуйте всем, в приложении используются объекты из кэша. Один объект используется несколькими пользователями. Если объекта в кэше нет, он сначала создается, потом кладется в кэш. При одновременном обращении пользователей возможна ситуация, когда в кэш кладутся несколько одних и тех же объектов, что не есть хорошо. Как можно заблокировать кэш, чтобы в него помещался только один объект от первого обращения к приложению? Можно ли использовать конструкцию вида lock(Cache) { .. } Спасибо! на один key "когда в кэш кладутся несколько одних и тех же объектов" это как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.08.2012, 16:14
|
|||
|---|---|---|---|
Блокировка кэша |
|||
|
#18+
Вообщем, пришел к выводу, что асп.нетовский кеш не получится полноценно залочить. Не поможет даже двойная блокировка. Вывод простой - обычный потокобезопасный статический синглтон спасет отца русской демократии. Но про кешёвые фишки типа таймера, коллбэков и иже с ними придется забыть. Ну или пытаться всё это засунуть в синглтон со всеми вытекающими. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=18&mobile=1&tid=1359282]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
132ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 413ms |

| 0 / 0 |
