WedX - журнал о программировании и компьютерных науках

Действительно ли снятие блокировки запроса состояния сеанса действительно повлияет на сайт

Недавно я играл с различными поставщиками состояния сеанса для ASP.Net и придумал то, что кажется лучшим (с точки зрения производительности и реализации).

Использование https://github.com/TheCloudlessSky/Harbour.RedisSessionStateStore

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

Теперь - это можно решить, сняв блокировку с провайдера. Это так же просто, как изменить строки, где lock = true, на lock = false, и изменить обновление, чтобы оно не обращало внимания на «&& state.Locked && state.LockId == lockId»

Паника! Ясно, что это противоречит тому, как предполагалось состояние сеанса, и с точки зрения безопасности потоков это пугающая перспектива. Но… на многих сайтах, которые мы создали, состояние сеанса редко используется для чего-то более сложного, чем «какой идентификатор пользователя активен в данный момент» — что пишется очень редко. Его можно использовать для передачи (больших) данных между двумя страницами, а также для сохранения нечетных настроек. ... во многих случаях потокобезопасность редко будет проблемой, так стоит ли компромисс с производительностью или стоит ли снимать блокировку и рисковать, чтобы получить значительно более отзывчивый сайт?


Ответы:


1

Вы можете попробовать мою версию хранения .NET Session в Redis, она делает все возможное, чтобы не блокировать сессию. И из личного опыта мы заметили ускорение в нашем веб-приложении с большим количеством AJAX после снятия блокировки:

NuGet: https://www.nuget.org/packages/RedisSessionProvider.

Документы: https://github.com/welegan/RedisSessionProvider

10.09.2014

2

Вы также можете попробовать поставщика состояния сеанса aspnet для Redis, этот блог объясняет это https://blogs.msdn.com/b/webdev/archive/2014/05/12/announcing-asp-net-session-state-provider-for-redis-preview-release.aspx

надеюсь это поможет.

31.05.2014
  • Как это помогает, чтобы не быть заблокированным провайдером сеанса? 13.10.2015
  • Новые материалы

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

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

    ИИ в аэрокосмической отрасли
    Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


    Для любых предложений по сайту: [email protected]