Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
rigorMortis
0 / 0 / 0
Регистрация: 01.05.2014
Сообщений: 66
Записей в блоге: 1
1

Обработка многих запросов action одновременно (многопоточность)

03.08.2014, 23:35. Просмотров 1300. Ответов 14
Метки нет (Все метки)

Привет
Что-то затруднился. Возник вопрос как организовать многопоточность для множества одновременных запросов к одному action, который тащит данные из базы и возвращает в представление. Собственно, сомневаюсь, в отдельный поток надо помещать метод, который выполняется в action и возвращает данные, или сам action? Когда на развёрнутом на веб-сервере приложении происходит одновременно несколько вызовов одного action они выстраиваются в очередь или что происходит?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.08.2014, 23:35
Ответы с готовыми решениями:

Как расширить ссылку из Controller/Action/Id до Contr/Action/Category/Id ?
Здравствуйте, Дорогие форумчане! Давно не брался за ASP, поэтому задаю...

Обработка запросов с использованием Ajax
Создаю веб-приложение на JS с использованием Extjs. Данные берутся из хранилищ...

Обработка запросов пользователя к веб сайту
Здравствуйте. вопрос возможно глупый, но в ASP новичок. приступим. Вопрос...

Обработка всех http-запросов Asp.net web forms
Имею asp.net приложение (xaf). Создал нужных *.ashx файлов, но что-то в веб...

Выполнение одновременно несколько sql запросов одновременно
Здравствуйте. Есть проблема! Пролистал много сайтов и форумов и толком ничего...

14
Alex_student
18 / 18 / 8
Регистрация: 10.02.2013
Сообщений: 250
Завершенные тесты: 1
04.08.2014, 09:36 2
Доброго времени суток.
Насчет многопоточности попробуйте в контроллере(методе) использовать такую конструкцию:
C#
1
2
3
4
5
 public async Task<чего возвращаем>  Metod()
        {
            
            return Viw();
        }

Цитата Сообщение от rigorMortis Посмотреть сообщение
Собственно, сомневаюсь, в отдельный поток надо помещать метод, который выполняется в action и возвращает данные, или сам action?
не знаю как более правильно будет, но чисто логически мне кажется надо обертывать в асинхронное выполнения все уровни (по крайней мере, на проекте более опытные бобры, обертывают все в async от начала до конца)
0
rigorMortis
0 / 0 / 0
Регистрация: 01.05.2014
Сообщений: 66
Записей в блоге: 1
04.08.2014, 10:06  [ТС] 3
Дело не только в async. Может потребоваться ограничить количество одновременно выполняющихся потоков. Это вроде можно сделать только организовав потоки с semaphore.
0
Alex_student
18 / 18 / 8
Регистрация: 10.02.2013
Сообщений: 250
Завершенные тесты: 1
04.08.2014, 10:22 4
а для чего делать ограничение одновременно выполняемых запросов? вы делаете настолько нагруженную систему что все может лечь?
0
rigorMortis
0 / 0 / 0
Регистрация: 01.05.2014
Сообщений: 66
Записей в блоге: 1
04.08.2014, 10:25  [ТС] 5
Сейчас нет, но может возникнуть такая задача. Да и самому хочется знать.
0
Alex_student
18 / 18 / 8
Регистрация: 10.02.2013
Сообщений: 250
Завершенные тесты: 1
04.08.2014, 10:32 6
ну тут к сожалению уже ничем помочь не могу( не настолько я опытен.
а по ограничению запросов, мне кажется для веб приложения заморачиваться смысла особо нету, если количество запросов превысит определенное количество, хостинг сам рубанет сайт
0
rigorMortis
0 / 0 / 0
Регистрация: 01.05.2014
Сообщений: 66
Записей в блоге: 1
04.08.2014, 10:43  [ТС] 7
Ну, мне однажды дали вводную, если страницу одновременно запрашивают 5000 пользователей, как должен быть организован код чтобы сайт не лёг. Вот и выясняю.
0
Alex_student
18 / 18 / 8
Регистрация: 10.02.2013
Сообщений: 250
Завершенные тесты: 1
04.08.2014, 10:48 8
интересная задача)..попробую полазить тоже посмотреть..но что-то мне подсказывает, что даже при обычном выполнении при 5к оращениях не ляжет)
0
rigorMortis
0 / 0 / 0
Регистрация: 01.05.2014
Сообщений: 66
Записей в блоге: 1
04.08.2014, 10:50  [ТС] 9
Тогда 50к, как в одноклассниках.
0
Masia_March
63 / 63 / 12
Регистрация: 09.08.2011
Сообщений: 116
Записей в блоге: 1
04.08.2014, 18:41 10
читаем матчасть "Основы архитектуры IIS, или запросопровод для ASP.NET"
1
rigorMortis
0 / 0 / 0
Регистрация: 01.05.2014
Сообщений: 66
Записей в блоге: 1
05.08.2014, 14:13  [ТС] 11
Спасибо, матчасть полезная. Тогда что, проблему 5000 запросов можно решить распределением одного веб-сайта так, чтобы он выполнялся в нескольких пулах одновременно, так что ли?
0
Wolfdp
872 / 780 / 204
Регистрация: 15.06.2012
Сообщений: 3,076
Записей в блоге: 1
Завершенные тесты: 1
05.08.2014, 17:44 12
Цитата Сообщение от rigorMortis Посмотреть сообщение
Тогда что, проблему 5000 запросов можно решить распределением одного веб-сайта так, чтобы он выполнялся в нескольких пулах одновременно, так что ли?
Лол. Каждый запрос -- отдельный поток в пуле. Если все они обращаются к одному рессурсу (читай "к одной таблице БД"), то нужно или кэшировать (если только чтение) или лочить (если есть запись/изменение).
0
rigorMortis
0 / 0 / 0
Регистрация: 01.05.2014
Сообщений: 66
Записей в блоге: 1
05.08.2014, 18:55  [ТС] 13
Цитата Сообщение от Wolfdp Посмотреть сообщение
Лол. Каждый запрос -- отдельный поток в пуле. Если все они обращаются к одному рессурсу (читай "к одной таблице БД"), то нужно или кэшировать (если только чтение) или лочить (если есть запись/изменение).
Тогда объясните что означает в настройках пула параметр Queue length?
0
y-fox
518 / 510 / 68
Регистрация: 19.09.2011
Сообщений: 826
06.08.2014, 09:10 14
rigorMortis, кол-во одновременных потоков на пул.
0
rigorMortis
0 / 0 / 0
Регистрация: 01.05.2014
Сообщений: 66
Записей в блоге: 1
07.08.2014, 00:02  [ТС] 15
Queue - это очередь, а многопоточность подразумевает параллельное выполнение.
0
07.08.2014, 00:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.08.2014, 00:02

Как задействовать многопоточность для обработки больших запросов в WebBrowser
Здравствуйте,нужна помощь. Как создать потоки,многопоточность,в программе...

Обработка одного события многих компонентов в одном методе
Доброго времени суток,форумчане! У меня такой вопрос: Есть 9 кнопок,можно ли...

MySqlConnection, несколько запросов одновременно
В общем написал вот такой класс для сервера, заметил что если не освободить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru