Flex URLRequest Timeout - PullRequest
       5

Flex URLRequest Timeout

1 голос
/ 04 мая 2010

У меня есть программа Flex, которая получает массив JSON из сценария PHP. Скрипт PHP не содержит простого массива JSON, он захватывает данные из Activecollab и выполняет некоторую работу с данными перед их кодированием.

В первом тесте использовался небольшой массив JSON, для кодирования которого потребовалось короткое время. Тем не менее, когда я пытаюсь увеличить масштаб теста, Flash-фильм вылетает при попытке загрузить данные JSON из PHP. Между тестами нет никакой разницы в коде, только объем данных и время, которое требуется PHP для кодирования. Я смотрю на проблему с памятью или на тайм-аут?

PS: Когда я вызываю скрипт PHP в Firefox, он не истекает и все равно возвращает массив JSON. Потребовалось некоторое время, чтобы вернуть массив.

1 Ответ

0 голосов
/ 21 апреля 2011

Я предполагаю, что время ожидания вашего php-сервиса в браузере не истекло. Если это так, то вам нужно изменить настройки php, чтобы скрипт мог работать дольше.

В противном случае вы можете попробовать совсем другую стратегию, например, такую: пусть flex вызовет вашу службу php и скажет ей начать обработку данных, попросит вашу службу php вернуть идентификатор токена, который flex будет использовать для опроса. Попросите другую службу php отслеживать ход обработки (получить токен для отслеживания задания). Эта вторая служба будет возвращать отчет о проделанной работе с каждым запросом до завершения обработки. Когда обработка завершена, она возвращает данные по следующему запросу.

Пусть php сгенерирует идентификатор, используемый для отслеживания 'задания', чтобы flex мог опрашивать и извлекать данные после завершения работы. Это, по крайней мере, устранит время ожидания, с которым имеет дело Flex, пока происходит обработка на стороне сервера.

Конечно, вам нужно где-то хранить свою предварительно обработанную сторону выходного сервера, ожидая запроса с соответствующим токеном. Вам также понадобится механизм очистки, который иногда очищает эту карту / кэш с тайм-аутом.

Вы можете проверить использование памяти на клиенте с помощью профилировщика флэш-памяти. Увеличивается ли общее потребление памяти при попытке загрузить данные?

...