Избегать ли флэш-загрузки 30-секундный тайм-аут при выполнении imagemagic convert? - PullRequest
0 голосов
/ 21 января 2012

У меня есть веб-приложение, использующее флэш-загрузчик (swfuploader), и недавно пользователь указал нам на ошибку, которая возникает, когда скрипт зависает более 30 секунд.

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

На данный момент скрипт загружает файл, конвертирует его, и если это многостраничный файл PDF, он сохранит ссылочные дочерние pngs в db, это отлично работает с большими и маленькими файлами, возникает проблема, что после 30 страниц он завис более 30 секунд.

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 21 января 2012

Либо то, что предложил Марк Роббинс, либо вы можете искать это http://php.net/manual/en/function.set-time-limit.php, но вам также необходимо проверить настройки сервера (они также могут ограничивать время, в течение которого скрипту разрешено запускаться).

Заставить PHP работать асинхронно было бы непростой задачей ... Я не говорю, что это будет идеальное решение, но его проще всего реализовать (по крайней мере, так мне кажется): вы могли бы запустить «преобразовать» как отдельный процесс, получить его pid и сохранить этот pid в сеансе / другом месте, которое, как вы знаете, связано с клиентом, а затем попросить клиента опросить сервер, чтобы запросить завершение работы. После завершения процесса, связанного с pid, клиент должен будет получить то, что было сохранено в каталоге, в который imagemagic преобразовал вещи.

1 голос
/ 21 января 2012

Я думаю, вы должны просто построить все это, чтобы быть асинхронным, и тогда вам не нужно беспокоиться об этом ... верно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...