Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.08.2021, 23:43
Кандидат Javascript-наук
Отправить личное сообщение для Signal Посмотреть профиль Найти все сообщения от Signal
 
Регистрация: 03.05.2016
Сообщений: 137

Как сделать контроль отправки запросов по времени?
Всем здравствуйте.
Вопрос такой, как сделать, я алгоритма, что-то не въесжаю.
Есть массив потоков, которые отправляют результат своей работы на сервер.
Скажем, работает 100 потоков, но они не должны превышать 40 запросов, в 20 секунд.
т.е. я делаю отдельный класс, который получает время текущего запроса и не дает отправить результат на сервер, пока не проверит, не превышен ли лимит.
вот, что-то я тут не въеду, т.е. получается, мне нужна некая точка отсчета
вот, собственно такой вопрос.
мне реализация не нужна, мне алгоритм действий, поможите люди добры!
Ответить с цитированием
  #2 (permalink)  
Старый 18.08.2021, 07:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,129

Сообщение от Signal
который получает время текущего запроса
который получает общее количество запросов, и если оно меньше 40, отправляет запрос и увеличивает счётчик, иначе в очередь, через 20 секунд счётчик запросов обнуляется автоматически.
Ответить с цитированием
  #3 (permalink)  
Старый 18.08.2021, 08:19
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Signal,
насколько я правильно понял вам нужен промежуточный обработчик
Для сервера (middleware) для вашего роутинга
Пример https://github.com/Nullmage/express-throttle
Для клиента throttling
Ответить с цитированием
  #4 (permalink)  
Старый 18.08.2021, 08:30
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,751

100 потоков где? В браузере?
Что такое поток? Webworker?

А что делается с неразрешенными сообщениями? Они просто игнорируются или ставятся в очередь и отправляются, когда можно?

Последний раз редактировалось voraa, 18.08.2021 в 08:49.
Ответить с цитированием
  #5 (permalink)  
Старый 18.08.2021, 08:36
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

voraa,
https://habr.com/ru/company/zerotech/blog/339900/
Ответить с цитированием
  #6 (permalink)  
Старый 18.08.2021, 08:53
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,751

Vlasenko Fedor,
А при чем тут Node? Разве вопрос про работу сервера?
Сообщение от Signal
Есть массив потоков, которые отправляют результат своей работы на сервер.
Сообщение от Signal
и не дает отправить результат на сервер, пока не проверит, не превышен ли лимит.
Ответить с цитированием
  #7 (permalink)  
Старый 18.08.2021, 08:58
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

Сообщение от рони Посмотреть сообщение
который получает общее количество запросов, и если оно меньше 40, отправляет запрос и увеличивает счётчик, иначе в очередь, через 20 секунд счётчик запросов обнуляется автоматически.
кейс:
1) делаем первый запрос на отметке t=0, включается таймер
2) 39 запросов на интервале (10 ... 20)
3) на t=20 счетчик сбрасывается
4) 40 запросов на интервале (20 ... 30)

итого на 20-секундном интервале (10 ... 30) у нас 79 запросов.

автору топика стоит уточнить, допустимо ли такое.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как выполнить что-нибудь после серии ajax запросов AxMuha Javascript под браузер 8 18.06.2020 08:45
Как сделать короткую функцию для forEach? nastya97core Общие вопросы Javascript 9 13.05.2020 18:32
Как сделать обработку динамически созданной формы через ajax? Wimko AJAX и COMET 4 08.10.2019 16:37
Как сделать задержку отправки формы на javascript? Akimserg Общие вопросы Javascript 12 19.10.2015 13:15
Как сделать калькулятор и с чего начать? A.P. Yellowman Общие вопросы Javascript 3 15.11.2013 21:32