|
0 / 0 / 0
Регистрация: 03.11.2016
Сообщений: 9
|
|
Как ускорить отправку GET запроса26.12.2019, 19:40. Показов 9404. Ответов 10
Поомогите найти решение. Подключаюсь через websocket к одной бирже, приходит большой поток информации,примерно 30-40 сообщений в секунду,каждое сообщение мне нужно сравнить с моими данными, если есть нужное, отправить GET запрос. Это нужно сделать максимально быстро, ускорил на сколько смог:
1) мои данный хранятся в словаре и запрашиваю их по ключу, вместо поиска в цикле(это оказалось примерно в 10 раз быстрее) 2) сообщение приходит типа str, но в формате json, нужные мне данные вырезаю что бы не созавать Json объект(это приблизительно в 15 раз быстрее) 3) get запросы отправляю через сессию(не могу оценить на сколько быстрее это происходит чем без сессии) 4) арендовал сервак в Торронто от туда самый маленький ping, тестировал через сервисы в интернете(запрос отправляется в 2 раза быстрее). И это все мне ни как не помогло, другие боты все равно опережают. Среднее время анализа сообщения и сбор данных перед отправкой 0.0002 сек(до оптимизации было около 0.02), а время отправки запроса и получения ответа от 0.2 до 0.3 (но мне важно лишь получение ответа сервером, посчитать не знаю как, плюс оно еще всегда разное). Есть мысли реализовать это все в cython, либо вообще написать это на Си(пока не знаю как). Но перед тем как вновь тыкать пальцем в небо,решил поинтересоваться у людей которые возможно смогут направить меня на путь истинный. P.S Скорее всего я оптимизировал не то что надо, потому-что понятно что основное время тратится именно на отправку запроса, пытался использовать библиотеки типа faster-than-requests,asincio,aiohttp,но ни что не помогло, возможно не умею гуглить, в общем буду рад любому совету.
0
|
|
| 26.12.2019, 19:40 | |
|
Ответы с готовыми решениями:
10
Как ускорить отправку запросов ?
Как реализовать отправку запроса с определенного ip адреса? |
|
фрилансер
6446 / 5641 / 1128
Регистрация: 11.10.2019
Сообщений: 15,007
|
|
| 26.12.2019, 20:13 | |
|
4elove4ko, сколько соединений позволяет иметь сервер?
вряд ли тут дело в языке. Скорее всего код выполняется быстро, а задержки проявляются при передаче по сети. Можно попробовать организовать конвейер - с определённым интервалом запускать соединения, результаты тоже будут приходить примерно с таким же интервалом. Затем можно будет попробовать распараллелить на потоки Добавлено через 2 минуты ага, я невнимательно прочитал. Оказывается, сначала приходят запросы. Тогда остаётся подключать многопоточную обработку
0
|
|
|
0 / 0 / 0
Регистрация: 03.11.2016
Сообщений: 9
|
|
| 26.12.2019, 21:08 [ТС] | |
|
т е получается каждое сообщение которое приходит по веб сокету, проверяется по очереди? И из-за этого грубо говоря накапливается стэк сообщений, так?
Добавлено через 11 минут Но блин, я даже не знаю если в момент придет 10 сообщений программе понадобится 0.001 сек что-бы их обработать, конечно все равно попробую. Но я больше думал о том что когда создается запрос на сервер, сначала вроде как по домену ищется IP и уже после этого отправляется запрос на IP(не уверен но почему-то у меня такое понимание было) и я вот думал что я же могу вбить IP вручную(тогда сократиться время на поиск(хотя возможно открытая сессия это и делает?)), но как это сделать и что из этого получится не понимаю, а возможно уже бред в голову приходит. Сижу уже 4 суток над этим вопросом голова взрывается ![]() ![]()
0
|
|
|
фрилансер
6446 / 5641 / 1128
Регистрация: 11.10.2019
Сообщений: 15,007
|
|
| 26.12.2019, 22:16 | |
|
4elove4ko,что-то мне подсказывает, что реально задержка вовсе не в программе (пропарсить, найти по ключу - это всё очень быстро), а в долгом ответе на GET от сервера (и это скорее всего именно так). Можно отправлять запросы не дожидаясь ответа, а ответы принимать асинхронно.
1
|
|
|
Просто Лис
|
|||
| 27.12.2019, 09:21 | |||
|
Меня смущает наличие слов websocket и get-запроса в одной фразе. Вы ничего не путаете? Может, вы просто дёргаете api сайта через http(s)? Добавлено через 1 минуту Кажется распутал: у вас два соединения. Добавлено через 6 минут Могу предложить такую архитектуру программы: 1) воркеры для обработки входящих сообщений от сервера 2) главный поток, который читает данные из websocket'а и кладёт распарсенные сообщения (без обработки! Только выделяет их) в очередь для дальнейшей обработки их воркерами. 3) воркеры для ответа. В каждом открыто по https-соединению с сервером. Читают из очереди данные и немедленно отправляют их на сервер. Можно ещё вызвать s.flush() для гарантированной отправки. Структура потока данных: websocket -> очередь1 -> воркеры с бизнес-логикой -> очередь2 -> воркеры с сетью -> сервер Добавлено через 1 минуту
3
|
|||
|
0 / 0 / 0
Регистрация: 28.06.2021
Сообщений: 6
|
||
| 28.06.2021, 11:48 | ||
0
|
||
|
Костыли любой сложности
201 / 146 / 36
Регистрация: 27.10.2019
Сообщений: 843
|
||
| 28.06.2021, 12:01 | ||
|
те один запрос одна программа (имеется ввиду, заранее запущеная и готовая к обработке то есть так: сокет->отдать демонам (данные передавать по shmop)->демоны->получить данные и отправить их(тк скорее всего с разных портов будет низя)
0
|
||
|
0 / 0 / 0
Регистрация: 28.06.2021
Сообщений: 6
|
||
| 28.06.2021, 12:06 | ||
|
Если тут есть желающие поучаствовать - велкам, пишите на почту nikita.chaika.d@gmail.com. Если есть ребята из Москвы - вообще идеально
0
|
||
|
Костыли любой сложности
201 / 146 / 36
Регистрация: 27.10.2019
Сообщений: 843
|
||
| 28.06.2021, 12:12 | ||
|
сам, увы, не могу,- занят, так что нет гарантии что доведу проект до конца. но пара часов есть, если нет ни каких тайн то кидай код в ветку пока есть время гляну, естественно бесплатно и без смс
0
|
||
|
0 / 0 / 0
Регистрация: 28.06.2021
Сообщений: 6
|
||
| 28.06.2021, 12:18 | ||
|
0
|
||
|
Костыли любой сложности
201 / 146 / 36
Регистрация: 27.10.2019
Сообщений: 843
|
||||
| 28.06.2021, 12:26 | ||||
|
0
|
||||
| 28.06.2021, 12:26 | |
|
Помогаю со студенческими работами здесь
11
Каким образом ускорить отправку запросов Node js? Как сделать отправку SQL запроса и вывод результата при открытии страницы? Как ускорить время выполнения запроса
Кто инициирует отправку ARP запроса? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|