|
41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825
|
|
Очередь запросов11.09.2018, 23:26. Показов 8556. Ответов 44
Метки нет (Все метки)
Здравствуйте, форумчане. Такой вопрос.. Есть софтина, которая обращается к апи одно сервиса, из месяца в месяц обрастала функционалом, когда-то хватало выставить дефолт таймаут между запросами, потом было прикручено регулирование таймаута, но сейчас уже и этого не хватает, т.к из разных функций и потоков, отправляет запросы и таймауты уже не помогают регулировать кол-во запросов в секунду. Из-за превышения ключ сносит, что доставляет небольшой дискомфорт пользователям.
Суть вопроса в том, как сделать какую нибудь очередь запросов в одном месте, чтобы регулировать кол-во отправленных запросов таймаутом из одного места? Надеюсь вы меня поняли.. Для запросов использую xNet
0
|
|
| 11.09.2018, 23:26 | |
|
Ответы с готовыми решениями:
44
Очередь выполнения множества запросов и рано или поздно наступающий StackOverflow
Очередь запросов и их выполнение |
|
41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825
|
|
| 17.09.2018, 19:14 [ТС] | |
|
0
|
|
|
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
|
|||
| 17.09.2018, 21:34 | |||
|
Ещё бы не плохо поддержку асинхронного апи запилить, но для xNet это не актуально.
1
|
|||
|
41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825
|
|
| 17.09.2018, 21:39 [ТС] | |
|
TopLayer, это как? Почему не гарантирован ? Там вроде-бы берутся по очереди запросы, разве нет?
0
|
|
|
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
|
|
| 17.09.2018, 21:42 | |
|
MakcPletnev, они по очереди отправляются в пул потоков. А в каком порядке они там выполнятся - не определено.
1
|
|
|
41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825
|
|
| 17.09.2018, 21:48 [ТС] | |
|
TopLayer, как это можно исправить?
Добавлено через 3 минуты TopLayer, если будет время, не откажусь от примера. Будем собирать тут все, связанное с данной темой. В гугле такого я не нашел
0
|
|
|
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
|
||||||
| 17.09.2018, 21:49 | ||||||
|
MakcPletnev, не пытаться выполнять запросы одновременно.
1
|
||||||
|
41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825
|
|
| 17.09.2018, 21:51 [ТС] | |
|
TopLayer, ну по сути тогда будет чисто залипание всех запросов до момента ответа от первого, это не очень хорошая концепция. У нас есть разрешение отправлять ~5 в секунду, т.е каждые 200мс можно отправлять следующий
0
|
|
|
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
|
|
| 17.09.2018, 22:03 | |
|
MakcPletnev, если отправить второй запрос не дождавшись результата первого, то не будет никаких гарантий, что сначала выполнится первый запрос, а потом второй.
1
|
|
|
41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825
|
|
| 17.09.2018, 22:09 [ТС] | |
|
TopLayer, а мне это не нужно, я отправлю второй запрос из одной функции, когда будет известен результат первого, в любом случае. Хотя все таки хотелось бы , чтобы все таки работало по принципу очереди.. Можно это сделать, без "однопоточности"?
0
|
|
|
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
|
||||||
| 18.09.2018, 00:05 | ||||||
|
MakcPletnev, такое вам нужно?
Кликните здесь для просмотра всего текста
1
|
||||||
|
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,046
|
|||
| 18.09.2018, 06:45 | |||
|
1
|
|||
|
41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825
|
|
| 18.09.2018, 14:17 [ТС] | |
|
Usaga, TopLayer, так все же?) Кто прав?
0
|
|
|
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,046
|
|
| 18.09.2018, 14:22 | |
Сообщение было отмечено MakcPletnev как решение
Решение
MakcPletnev, мой вариант держит запущенными не более N задач. Остальные ждут запуска в очереди. Исполнение в порядке поступления задач (очередь же). Варианты с локами и семафорами подразумевают, что задачи висят запущенными все до единой, но упираются в локи\семафоры и разблокируются в неопределённом порядке.
Какой вариант вам больше подходит, тот и выбирайте. Но лично мне очень не нравится ситуация с "висящими" на локах потоках. Неэффективное расходование ресурсов.
1
|
|
|
41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825
|
|
| 18.09.2018, 14:24 [ТС] | |
|
Usaga, я про вариант TopLayer , он сделал что-то похожее на ваше решение, только сложнее на мой взляд. И я вот не понимаю, чем его реализация лучше, если выполняется по сути тоже самое..
0
|
|
|
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
|
|||
| 18.09.2018, 14:31 | |||
Сообщение было отмечено MakcPletnev как решение
Решение
1
|
|||
|
41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825
|
|
| 18.09.2018, 14:34 [ТС] | |
|
TopLayer, да , я уже понял это. Просто до этого мы говорили за очередность запросов, хотя может я просто не так понял о чем вы пытались сказать. В любом случае, всем спасибо) Буду использовать, думаю очень хорошую базу сделали)
0
|
|
|
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
|
||
| 18.09.2018, 14:41 | ||
|
0
|
||
|
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,046
|
|
| 18.09.2018, 14:43 | |
|
MakcPletnev, да, я провтыкал условие про количество запросов в секунду. Мой вариант действительно на время не подвязан, только на количество одновременных задач.
0
|
|
|
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
|
||||||
| 18.09.2018, 15:28 | ||||||
Сообщение было отмечено MakcPletnev как решение
Решение
MakcPletnev, ну и поскольку блокирующие вызовы xNet будут находится в изолированном пуле потоков, то вам более не следует писать блокирующий код, так как механизм async/await предлагает более хорошую альтернативу. То есть окончательно переезжаем на модный TPL.
Кликните здесь для просмотра всего текста
1
|
||||||
|
41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825
|
|
| 19.09.2018, 01:12 [ТС] | |
|
TopLayer, прямо до идеала довели) Спасибо большое, в ближайшее время разберусь как это работает и внедрю к себе)
0
|
|
| 19.09.2018, 01:12 | |
|
Очередь отправки get-запросов Разработка модели обследования запросов (процессов) с использованием дисциплины, типа Очередь Очередь XML запросов Сформировать очередь по файлу целых чисел. Промоделировать очередь в супермаркете Очередь (сделать очередь, чтобы добавляло, удаляло, читало. Не STL.) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|