![]() |
Как грамотно поставить запросы в очередь с задержкой по времени?
Как грамотно поставить запросы в очередь с задержкой по времени?
Timer, setTimeout - не предалагать :) |
Какие запросы?
|
а как вы без таймера собираетесь синхронизировать?
|
BulkLoader есть готовый, правда не использовал. Для контакта делал цепь запросов, после выполнения (удачного или неудачного) через 400мс запускается следующий, но с таймером.
|
Если конкретизировать то вы мне скажете, что надо было тему в ВК создавать - а это не так :)))
Сейчас конкретно интересует нормальный способ обхода too many request от ВК. Для этого надо запросы в очередь ставить. Но эта проблема может решать не только случай с ВК. Для этого сейчас использую таймер но это не есть правильно хочу красивое и логичное решение. Может есть открытая библиотека где можно посмотреть как это можно сделать... Добавлено через 1 минуту BulkLoader - A library for managing multiple loadings with Actionscript 3.... |
Правильное решение работает, неправильное - нет, вот и весь сказ.
|
GBee, может я ошибаюсь, но по-моему товарищ flashfoxter говорит о бомбежке запросами по таймеру, без живой очереди, подразумевающей ожидание ответа на предыдущий запрос - просто по тику посылается следующий запрос из массива. Это конечно никуда не годится. GBee говорит о другом подходе – запросы выстраиваются в очередь, и каждый следующий посылается ТОЛЬКО тогда, когда придет ответ/подтверждение на предыдущий. А на случай если ответ не придет (не ждать же его вечно) – после 400мс ожидания посылается следующий (на самом деле лучше давать три попытки "провалившемуся" запросу, кроме того, если ответ так и не получен – генерить событие или ошибку, и только потом продолжать со следующим запросом.
|
Вот.... спасибо это уже ближе к теме. То есть допустим:
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/
ближе к концу, асинхронные команды, допилите этот вариант и будет вам счастье. Так же где то тут мелькали готовые варианты обработки ошибки запроса с последующим повторным вызовом, или это было в какой то ВК либе, советую кстати их изучить все же. |
Посмотрел по ссылке, правда без звука и только начало, походит больше на TaskManager который я видел на сайте xitri
|
| Часовой пояс GMT +4, время: 17:26. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.