Я запускаю Zend-сервер и ZF1 с базой данных db2. Для некоторого экспорта запросы занимают очень много времени (> 50 секунд), что приводит к ошибке таймаута 408. Я ищу решение для отображения загрузочного сообщения на клиенте во время выполнения SQL-запроса. Любая помощь приветствуется.Загрузка сообщения вместо таймаута при выполнении тяжелого запроса
ответ
Необходимо увеличить максимальное время выполнения, разрешенное для php, чтобы оно могло завершиться и не было завершено кодом возврата 408. Либо локально для этого сценария только: http://php.net/manual/en/function.set-time-limit.php или глобально: http://php.net/manual/en/info.configuration.php#ini.max-execution-time
Самый простой способ показать прогресс загрузки должен иметь длинную работу выполненную с просьбой AJAX. На главной странице должен отображаться ход загрузки и запуск запроса на скрипт экспорта с помощью Javascript. Когда этот сценарий экспорта заканчивается, на главной странице может отображаться сообщение об успешном завершении.
Если сценарий экспорта создает что-то вроде файла CSV, который необходимо загрузить, а не отправлять этот CSV в качестве тела ответа, вы можете вывести его в файл на сервере, а затем отправить URL-адрес этого файла в ответ , Ваш Javascript на главной странице может показать этот url и предложить пользователю загрузить его в сообщение об успешном завершении.
Другой способ сделать это - создать очередь заданий. Это можно сделать, используя систему очередей или просто используя таблицу заданий в базе данных. Когда пользователь запрашивает экспорт, вы создаете новое задание. Вам нужен процесс, который выполняется на сервере, например, в качестве задания cron, который проверяет таблицу для всех новых заданий, а когда есть один, он запускает экспорт и обновляет статус задания. На своей странице вам нужно периодически, с помощью Javascript или просто перезагружать страницу, проверять статус своей работы и показывать успешное сообщение, когда оно будет завершено. Опять же, если экспорт создает файл, серверный процесс должен записать его, и вы включаете ссылку для загрузки в сообщении об успешном завершении.
- 1. ошибка таймаута при выполнении запроса linq
- 2. Модальное Загрузка сообщения при выполнении сценария
- 3. Программа останавливается после последовательного таймаута при выполнении запроса GET
- 4. избежать переполнений стека при выполнении рекурсивного таймаута
- 5. Отключить событие нажатия кнопки при выполнении тяжелого метода в C#
- 6. Отладка с визуальной студией: программа работает при выполнении тяжелого цикла
- 7. таймаута загрузки строка сообщения
- 8. Ошибка при выполнении запроса?
- 9. Ошибка при выполнении запроса
- 10. SQLiteException при выполнении запроса
- 11. Ошибка при выполнении запроса
- 12. Ошибка при выполнении запроса
- 13. Исключение при выполнении запроса
- 14. Изменить номер запроса при выполнении
- 15. Предупреждение при выполнении веб-запроса?
- 16. Ошибка при выполнении запроса https
- 17. vbscript для запроса сообщения о выполнении файла
- 18. Строка вместо JSON при выполнении запроса AJAX Джанго сервер
- 19. Ожидание сообщения при выполнении задач, требующих времени
- 20. как hasoop обрабатывать ram при выполнении запроса?
- 21. Отображение Загрузка текста при выполнении WebRequest
- 22. Ошибка при выполнении запроса Разбор
- 23. org.apache.openjpa.persistence.ArgumentException при выполнении запроса openJPA
- 24. Ошибка при выполнении запроса (T_VARIABLE)
- 25. Xamarin.Forms UnhandledException при выполнении запроса
- 26. Ошибка при выполнении запроса SQL
- 27. NetworkOnMainThreadException при выполнении HTTP-запроса
- 28. Проблема при выполнении запроса Facebook
- 29. Ошибка SQL при выполнении запроса
- 30. Ошибка при выполнении запроса Curl
Спасибо, я попробую это решение – Ayoub