Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

PHP, exec, abiword

41K
23 октября 2012 года
Govard
28 / / 26.10.2011
Здравствуйте!
У меня на сайте движок на PHP. Один скрипт обрабатывает файлы doc таким образом:
 
Код:
exec ("abiword --to=html  входной.doc -o выходной.html");
Дело в том, что на локалке все работает прекрасно. А на сервере нет. Вернее, почти. Обрабатываются файлы размером не более 100 килобайт. Примерно. До этого размера обработка проходит замечательно. Загрузка больших файлов через PHP разрешена, $_FILES['file']['error'] содержит 0. В чем же проблема?
ОС: Gentoo на домашнем компе, CentOS на сервере.
277
23 октября 2012 года
arrjj
1.7K / / 26.01.2011
По тайм ауту наверно прерывается - чем больше файл тем больше времени ему на обработку надо. Вместо того чтоб через exec добавляй задания в крон например
41K
23 октября 2012 года
Govard
28 / / 26.10.2011
Цитата: arrjj
По тайм ауту наверно прерывается - чем больше файл тем больше времени ему на обработку надо. Вместо того чтоб через exec добавляй задания в крон например


Ну, да, я так и понял, что скрипт выполняется быстрее, чем сервак обрабатывает документ. Честно говоря, не совсем понял, как это сделать через крон.

41K
23 октября 2012 года
Govard
28 / / 26.10.2011
А, хотя, все понял. Просто создам скрипт, который будет обрабатывать doc, парсить потом html и все такое. Загрузку делаю через HTTP, а после загрузки файла на сервер добавляю задание в крон - распарсить файл через, скажем, минуту. Спасибо!
4
23 октября 2012 года
mike
3.7K / / 01.10.2002
Цитата: Govard
А, хотя, все понял. Просто создам скрипт, который будет обрабатывать doc, парсить потом html и все такое. Загрузку делаю через HTTP, а после загрузки файла на сервер добавляю задание в крон - распарсить файл через, скажем, минуту. Спасибо!



Добавлять задания в крон - плохая идея.

Правильно делать так:

  1. При закачке, файл помещается в очередь. Никаких операций с ним не производится. Он просто где-то сохраняется.
  2. По крону, например каждую минуту, вызывается обработчик, который смотрит содержимое очереди и обрабатывает файлы. Главное предусмотреть защиту от одновременного запуска нескольких инстанций.
41K
23 октября 2012 года
Govard
28 / / 26.10.2011
Цитата: mike

Добавлять задания в крон - плохая идея.

Правильно делать так:
  1. При закачке, файл помещается в очередь. Никаких операций с ним не производится. Он просто где-то сохраняется.
  2. По крону, например каждую минуту, вызывается обработчик, который смотрит содержимое очереди и обрабатывает файлы. Главное предусмотреть защиту от одновременного запуска нескольких инстанций.



Выяснил я, что большие файлы не из-за abiword не обрабатывались. В окончательном парсере, который html превращал в BB коды, был избыток регулярок. Кое-что подправил и файлы стали обрабатываться. Но это довольно ресурсоемкое занятие. Попробую ваш вариант. Большая очередь файлов не будет создаваться. возможно, как-то разобью задачу на этапы. Спасибо!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог