Делегировать накладные расходы при поиске в веб-странице - PullRequest
1 голос
/ 01 декабря 2010

Я провел некоторые поиски, но не совсем увидел информацию, которую ищу.

У меня есть веб-приложение, в котором пользователь посещает страницу с параметром QueryString, передающим идентификатор объекта, который я должен получить.

Затем мне нужно выполнить ряд проверок, чтобы убедиться, что пользователь может получить доступ к этим данным, а также выяснить, есть ли у другого пользователя блокировка (записанная в БД) для этого объекта.

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

Моей реализацией для этого было бы использование делегата (ов) и вызов BeginInvoke, однако я беспокоюсь, что накладные расходы на многопоточность могут привести к увеличению скорости.

Мое исследование показало, что он будет использовать ThreadPool, поэтому не должно быть слишком много накладных расходов, но я хотел бы знать, внедрил ли кто-нибудь подобное решение для аналогичного сценария на сайте с высоким трафиком и видел ли это Resutls от этого?


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

Ответы [ 2 ]

1 голос
/ 01 декабря 2010

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

Масштабированиеup не обязательно означает использование многопоточного приложения, я думаю, вам следует подумать о повышении мощности веб-серверов / ОЗУ / ЦП и т. д. для поддержки увеличенной нагрузки.

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

Да, вы можете использовать метод, описанный вами, который будет работать большую часть времени, насколько я знаю

1 голос
/ 01 декабря 2010

Так как это ASP.NET, если у вас низкая активность сайта (что противоречило бы «это значительно увеличит масштаб»), я бы предложил против этой идеи.Ваши другие локальные процессоры уже делают много, как и база данных.Я бы держал это последовательно, , но Я бы искал способы извлечь все данные, которые мне нужны, одним попаданием в базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...