Мое приложение ASP.NET предоставляет доступ к различным фрагментам данных.Доступ к каждому чанку может получить один или несколько пользователей одновременно, поэтому приложение должно предотвращать конфликты.
После долгих размышлений я думаю, что оптимистичный параллелизм не является лучшим решением для этого сценария и в настоящее время рассматриваетблокировка как подходящая опция.
Я могу легко заставить все запросы обрабатывать один за другим, используя SyncLock
следующим образом:
Private Shared AccessLock As New Object
SyncLock AccessLock
..Do some reading and writing here
End Synclock
Но это сильно ограничивает масштабируемость приложения.
Так что я думаю о том, чтобы каким-то образом поставить в очередь доступ только к определенным частям данных.Например, одна очередь предназначена для доступа к одной части данных, а другая - для другой части данных.
Существует ли способ настроить синхронизацию для использования разных очередей для разных частей данных вместо одной очереди длявсе?Я имею в виду, что это может позволить мне вручную указать что-то вроде "SyncLock (" Group1 ") и" SyncLock ("Group2").