Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Создание дополнительного потока / 7 сообщений из 7, страница 1 из 1
13.12.2005, 16:35
    #33433685
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание дополнительного потока
Во время обработки поста, на веб сервере, при определенных условиях, может выполняться отправка почты. Причем, эта отправа заметно притормаживает ответ веб-сервера клиента. Решил вынести отправку почты в отдельный поток на веб-сервере.
Сделал через вызов BeginInovke делегата, который работает через пул потоков. Тестирование даного метода показало, что пул ограничен, при достижение его придела, все остальные запросы на создание потока из пула выстраиваюца в очередь и ждут. Размер пула небольшой - у меня это было около 26 потоков. Да и чес говоря вытягивание/возвращение в/из пула, как мне показалось не самая быстрая операция.
Попробовал сделать напрямую через Thread.Start - работает всё намного шустрее, но тут есть другая проблема - у процесса есть граничное число потоков, которых он может создать. У меня это число около 1952, после достижения вываливалась ошибка - недостаточно памяти....Конечно очень маловероятно, что одновременно 2000 юзеров будут постить такой запрос, но чисто гиппотетически такое конечно возможно....

Так вот, может ли кто дать совет как разрулить мне эту ситуацию?
_______________________________________________________
Господи, сколько ещё не сделано... А сколько ещё предстоит не сделать...!
...
Рейтинг: 0 / 0
13.12.2005, 17:35
    #33433906
profil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание дополнительного потока
http://msdn.microsoft.com/msdnmag/issues/03/06/Threading/


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
13.12.2005, 18:35
    #33434110
profil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание дополнительного потока
для asp.net 2.0 http://msdn.microsoft.com/msdnmag/issues/05/10/WickedCode/


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
13.12.2005, 19:10
    #33434167
profil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание дополнительного потока
есть возможность - может через remoting инициализировать отправку почты в другом процессе...


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
13.12.2005, 19:16
    #33434183
profil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание дополнительного потока
хотел сказать: если есть возможность =))


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
14.12.2005, 12:24
    #33435305
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание дополнительного потока
Привет profil! Спасибо за активную участь в этом трэде. По поводу статью - неплохая, но, думаю, это не то что мне нужно, я не нуждаюсь в асинхронных хэндлерах - меня вполне устраивают те что есть. Мне просто нужно запустить дополнительную задачу, которая бы не влияла на скорость ответа веб-сервера клиенту. Впринципе, thread.Start решает почти все мои проблемы. Мне просто интересно было узнать на сколько такое решение есть оправданно и альтернативы. По поводу ремоутинга - мне кажеться это как из пушки по воробьям, но идея инетерсная...

_______________________________________________________
Господи, сколько ещё не сделано... А сколько ещё предстоит не сделать...!
...
Рейтинг: 0 / 0
15.12.2005, 11:28
    #33437478
profil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание дополнительного потока
все определяется задачей.
если у тебя массовая отправка почты, то я бы предпочел использовать для этого отдельный процесс.
в общем, вариантов много и более простых, типа положить в базу, то что отправлять, а каким-нибудь джобом (или..) все это дело
рассылать.
---
и последнее. на сколько я понимаю, обламывает то, что после отправки формы долго весит пустой экран, варианты решений можно
посмотреть здесь: /topic/75740

ps. против твоего способа ни чего не имею. я привел альтернативы
единственное замечу:
>вытягивание/возвращение в/из пула, как мне показалось не самая быстрая операция
что создание и уничтожение потока сопровождается б о льшими издержками, нежели вытягивание его из пула.

>У меня это число около 1952
на фсяк :)) /topic/112532


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Создание дополнительного потока / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]