Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как грамотно поставить запросы в очередь с задержкой по времени? (http://www.flasher.ru/forum/showthread.php?t=158611)

flashfoxter 21.06.2011 18:14

Как грамотно поставить запросы в очередь с задержкой по времени?
 
Как грамотно поставить запросы в очередь с задержкой по времени?
Timer, setTimeout - не предалагать :)

КорДум 21.06.2011 18:14

Какие запросы?

nOobCrafter 21.06.2011 18:15

а как вы без таймера собираетесь синхронизировать?

GBee 21.06.2011 18:16

BulkLoader есть готовый, правда не использовал. Для контакта делал цепь запросов, после выполнения (удачного или неудачного) через 400мс запускается следующий, но с таймером.

flashfoxter 21.06.2011 18:19

Если конкретизировать то вы мне скажете, что надо было тему в ВК создавать - а это не так :)))
Сейчас конкретно интересует нормальный способ обхода too many request от ВК.
Для этого надо запросы в очередь ставить. Но эта проблема может решать не только случай с ВК.
Для этого сейчас использую таймер но это не есть правильно хочу красивое и логичное решение. Может есть открытая библиотека где можно посмотреть как это можно сделать...

Добавлено через 1 минуту
BulkLoader - A library for managing multiple loadings with Actionscript 3....

GBee 21.06.2011 18:46

Правильное решение работает, неправильное - нет, вот и весь сказ.

Wolsh 21.06.2011 23:39

GBee, может я ошибаюсь, но по-моему товарищ flashfoxter говорит о бомбежке запросами по таймеру, без живой очереди, подразумевающей ожидание ответа на предыдущий запрос - просто по тику посылается следующий запрос из массива. Это конечно никуда не годится. GBee говорит о другом подходе – запросы выстраиваются в очередь, и каждый следующий посылается ТОЛЬКО тогда, когда придет ответ/подтверждение на предыдущий. А на случай если ответ не придет (не ждать же его вечно) – после 400мс ожидания посылается следующий (на самом деле лучше давать три попытки "провалившемуся" запросу, кроме того, если ответ так и не получен – генерить событие или ошибку, и только потом продолжать со следующим запросом.

flashfoxter 22.06.2011 00:10

Вот.... спасибо это уже ближе к теме. То есть допустим:
1. Создаем Класс Sender
2. Делаем у него паблик метод, sendRequest(some):Boolean
3. Вызываем sender.sendRequest(some)
4. В классе принимаем что отправить, смотрим если ли в массиве (хранителе запросов) данные reqHolder.length
5. Если нет то запрашиваем сколько времени прошло с последнего запроса, если все ок то - запрос,
если нет запрос в массив push.
6. По таймеру проверяем что в массиве, и шлем запросы из очереди
7. Неудачные запросы складываем в отдельный массив с ошибками, из этом массива делаем запросы
по 3 раза(допустим).

Как-то так ? Кто то может еще подскажет... Может увеличивать время, "отстоя" ошибочного запроса, или автоматическое разрезание его на более мелкие части...

nOobCrafter 22.06.2011 00:18

http://johnlindquist.com/2010/09/09/...mmand-pattern/
ближе к концу, асинхронные команды, допилите этот вариант и будет вам счастье.
Так же где то тут мелькали готовые варианты обработки ошибки запроса с последующим повторным вызовом, или это было в какой то ВК либе, советую кстати их изучить все же.

flashfoxter 22.06.2011 00:39

Посмотрел по ссылке, правда без звука и только начало, походит больше на TaskManager который я видел на сайте xitri


Часовой пояс GMT +4, время: 17:26.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.