powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / WebRequest with fix time execute
14 сообщений из 14, страница 1 из 1
WebRequest with fix time execute
    #39591436
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
появилась проблемка или я не понимаю что то.
задача сделать запрос на внешний сервис и получить данные. вроде все тривиально. отрабатывает за 70мс.
но в нагрузочном тесте на 20 юзеров уже отваливается по времени жизни. ну думаю тот сервис нас блочит ок ... выставил у WebRequest Timeout в 300 мс и думал буду ловиться ошибки просто и все, оказалось что нет .. время отклика порой все равно доходило до 40-70 секунуд и я не понимаю почему
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
 Stopwatch stRoot = new Stopwatch();
            stRoot.Start();
            try
            {                
                var request = (HttpWebRequest)WebRequest.Create(ServiceUrl);
                request.Timeout = 300;
                request.Proxy = null;

                using (var response = (HttpWebResponse)request.GetResponse())
                {
                    using (var reader = new StreamReader(response.GetResponseStream()))
                    {
                        Stopwatch st = new Stopwatch();
                        st.Start();
                        var t = reader.ReadToEnd();
                        st.Stop();
                        _logger.LogDebug("ReadToEnd " + st.Elapsed.TotalMilliseconds.ToString("f0"));
                        st.Reset();
                        var result = JsonConvert.DeserializeObject<some>(t);
                        return result;
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message, ex);
            }
            finally
            {
                stRoot.Stop();
                _logger.LogDebug("Root " + stRoot.Elapsed.TotalMilliseconds.ToString("f0"));
                stRoot.Reset();
            }


лог: 2018-01-26 9:59:36.1660|0|DEBUG| Service Root 73728
есть вариант обернуть в таску и сделать маневр с
Код: c#
1.
2.
3.
4.
5.
6.
var task = Task.run(()=> service);
var delay = Task.Delay(3850);
Task.WhenAny(delay, task ).Wait();
if (task.IsCompleted ){
//todo
}


какие есть вариант ?
...
Рейтинг: 0 / 0
WebRequest with fix time execute
    #39591491
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забил написать эт core 2
...
Рейтинг: 0 / 0
WebRequest with fix time execute
    #39591506
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://github.com/dotnet/corefx/issues/7862
может кому пригодиться HttpRequest кривой в netCore и его не будут допиливать, HttpClient - наоборот, на десктопе недопилен.
...
Рейтинг: 0 / 0
WebRequest with fix time execute
    #39592659
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин все равно так себе.. по памяти плывет
https://github.com/dotnet/corefx/issues/23401

сыроват core net, я хз как вы там продакшен на нем держите.
...
Рейтинг: 0 / 0
WebRequest with fix time execute
    #39593092
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,

нифига не понял, почему ты используешь допотопный WebRequest, и не используешь HttpClient в асинхронном режиме.
...
Рейтинг: 0 / 0
WebRequest with fix time execute
    #39593099
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,

если используешь Core, думаю, писать надо async-first.. иначе зачем вообще
...
Рейтинг: 0 / 0
WebRequest with fix time execute
    #39594064
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

про оберут в таски я как раз и имелл виду async.

да почему так категорично то? если core то асинхронно? не вижу четкого ограничения

п.с.
по памяти я погорячился, тут я извиняюсь.. нашел что текла сторонняя библа по работе с базой geoip на многопоточности. тупо выделяла по 60мб памяти и естествено cg не убирал быстро в large heap, выставил в dryioc синглетон и понеслось шустро. благо там тока чтение из неё.
...
Рейтинг: 0 / 0
WebRequest with fix time execute
    #39594070
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostthandmadeFromRu,

нифига не понял, почему ты используешь допотопный WebRequest, и не используешь HttpClient в асинхронном режиме.

ну почему бы и нет. просто был код врапера который работал, тесты проходил, никто в него не лез. у того же WebRequest также есть ответ в асинхроном виде.
...
Рейтинг: 0 / 0
WebRequest with fix time execute
    #39594081
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,
Т.е внешний запрос тормозил из за нехватки памяти?
...
Рейтинг: 0 / 0
WebRequest with fix time execute
    #39594171
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuда почему так категорично то? если core то асинхронно? не вижу четкого ограничения

ну давай помыслим.. наверное потому что в core сделан максимальный упор на асинхроное выполнение, а всё что выглядит как синхронное, это обёртки над асинк.

просто не вижу смысла хвататься за core и пилить по старинке. зачем?

поговаривают, что в плюсах запуск на каких-то линухах, но это всё врут
...
Рейтинг: 0 / 0
WebRequest with fix time execute
    #39594173
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuну почему бы и нет. просто был код врапера который работал, тесты проходил, никто в него не лез. у того же WebRequest также есть ответ в асинхроном виде.

всего лишь лёгкое недоумение )
...
Рейтинг: 0 / 0
WebRequest with fix time execute
    #39594582
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123handmadeFromRu,
Т.е внешний запрос тормозил из за нехватки памяти?
не могу сказать точно. но в коре есть определенная проблема с WebRequest
...
Рейтинг: 0 / 0
WebRequest with fix time execute
    #39594587
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttпросто не вижу смысла хвататься за core и пилить по старинке. зачем?

все новая хорошо забытое старое)))
а если серьезно как я описал был врапер и вроде как в 1 потоке без проблем работает. его перенесли в коре окружение, проверили и работает. Мыслей что там внутри не было пока проблемки не начались.

п.с. вот тока не давно на коре вышел Quartz, nlog пока еще в rc2(хотя 4.4 работате но там интеграция странная, в 4.5 они сделали на мой взгляд правильнее) вообщем библиотеки еще отстают, если капнуть чуть глубже
...
Рейтинг: 0 / 0
WebRequest with fix time execute
    #39594847
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRunlog пока еще в rc2

да уже все равно )
есть же serilog
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / WebRequest with fix time execute
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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