![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Jun 2011
Сообщений: 91
|
Как грамотно поставить запросы в очередь с задержкой по времени?
Timer, setTimeout - не предалагать ![]() |
|
|||||
|
BulkLoader есть готовый, правда не использовал. Для контакта делал цепь запросов, после выполнения (удачного или неудачного) через 400мс запускается следующий, но с таймером.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
|
Регистрация: Jun 2011
Сообщений: 91
|
Если конкретизировать то вы мне скажете, что надо было тему в ВК создавать - а это не так
))Сейчас конкретно интересует нормальный способ обхода too many request от ВК. Для этого надо запросы в очередь ставить. Но эта проблема может решать не только случай с ВК. Для этого сейчас использую таймер но это не есть правильно хочу красивое и логичное решение. Может есть открытая библиотека где можно посмотреть как это можно сделать... Добавлено через 1 минуту BulkLoader - A library for managing multiple loadings with Actionscript 3.... |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
GBee, может я ошибаюсь, но по-моему товарищ flashfoxter говорит о бомбежке запросами по таймеру, без живой очереди, подразумевающей ожидание ответа на предыдущий запрос - просто по тику посылается следующий запрос из массива. Это конечно никуда не годится. GBee говорит о другом подходе – запросы выстраиваются в очередь, и каждый следующий посылается ТОЛЬКО тогда, когда придет ответ/подтверждение на предыдущий. А на случай если ответ не придет (не ждать же его вечно) – после 400мс ожидания посылается следующий (на самом деле лучше давать три попытки "провалившемуся" запросу, кроме того, если ответ так и не получен – генерить событие или ошибку, и только потом продолжать со следующим запросом.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jun 2011
Сообщений: 91
|
Вот.... спасибо это уже ближе к теме. То есть допустим:
1. Создаем Класс Sender 2. Делаем у него паблик метод, sendRequest(some):Boolean 3. Вызываем sender.sendRequest(some) 4. В классе принимаем что отправить, смотрим если ли в массиве (хранителе запросов) данные reqHolder.length 5. Если нет то запрашиваем сколько времени прошло с последнего запроса, если все ок то - запрос, если нет запрос в массив push. 6. По таймеру проверяем что в массиве, и шлем запросы из очереди 7. Неудачные запросы складываем в отдельный массив с ошибками, из этом массива делаем запросы по 3 раза(допустим). Как-то так ? Кто то может еще подскажет... Может увеличивать время, "отстоя" ошибочного запроса, или автоматическое разрезание его на более мелкие части... |
|
|||||
|
http://johnlindquist.com/2010/09/09/...mmand-pattern/
ближе к концу, асинхронные команды, допилите этот вариант и будет вам счастье. Так же где то тут мелькали готовые варианты обработки ошибки запроса с последующим повторным вызовом, или это было в какой то ВК либе, советую кстати их изучить все же. |
|
|||||
|
Регистрация: Jun 2011
Сообщений: 91
|
Посмотрел по ссылке, правда без звука и только начало, походит больше на TaskManager который я видел на сайте xitri
|
![]() |
![]() |
Часовой пояс GMT +4, время: 11:17. |
|
|
« Предыдущая тема | Следующая тема » |
|
|