2010-12-01 2 views
1

Я проделал некоторые поиски, но не совсем видел информацию, которую я ищу.Делегирование накладных расходов в поиске веб-страниц

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

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

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

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

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


Причина Я ищу, чтобы сделать это, мы реинжиниринг наше приложение с нуля, и нужно, чтобы убедиться, что мы что-то, что будет значительно масштабное строительство.

+0

: * ... запустить ряд проверок, чтобы убедиться, пользователь может получить доступ к этим данным, а также найти если у другого пользователя есть блокировка ... * вы могли бы сделать все это в одном запросе, вместо того чтобы делать множественный доступ. – slugster 2010-12-01 11:18:43

+0

@slugster - некоторые проверки проходят через совершенно разные системы, однако я думаю, что я мог бы объединить две проверки для запуска в одном запросе. – cjk 2010-12-01 11:26:26

ответ

1

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

+0

Спасибо, Марк, имеет смысл. – cjk 2010-12-01 11:28:21

1

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

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

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

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