PHP, exec, abiword
У меня на сайте движок на PHP. Один скрипт обрабатывает файлы doc таким образом:
Код:
exec ("abiword --to=html входной.doc -o выходной.html");
ОС: Gentoo на домашнем компе, CentOS на сервере.
По тайм ауту наверно прерывается - чем больше файл тем больше времени ему на обработку надо. Вместо того чтоб через exec добавляй задания в крон например
Цитата: arrjj
По тайм ауту наверно прерывается - чем больше файл тем больше времени ему на обработку надо. Вместо того чтоб через exec добавляй задания в крон например
Ну, да, я так и понял, что скрипт выполняется быстрее, чем сервак обрабатывает документ. Честно говоря, не совсем понял, как это сделать через крон.
А, хотя, все понял. Просто создам скрипт, который будет обрабатывать doc, парсить потом html и все такое. Загрузку делаю через HTTP, а после загрузки файла на сервер добавляю задание в крон - распарсить файл через, скажем, минуту. Спасибо!
Цитата: Govard
А, хотя, все понял. Просто создам скрипт, который будет обрабатывать doc, парсить потом html и все такое. Загрузку делаю через HTTP, а после загрузки файла на сервер добавляю задание в крон - распарсить файл через, скажем, минуту. Спасибо!
Добавлять задания в крон - плохая идея.
Правильно делать так:
- При закачке, файл помещается в очередь. Никаких операций с ним не производится. Он просто где-то сохраняется.
- По крону, например каждую минуту, вызывается обработчик, который смотрит содержимое очереди и обрабатывает файлы. Главное предусмотреть защиту от одновременного запуска нескольких инстанций.
Цитата: mike
Добавлять задания в крон - плохая идея.
Правильно делать так:
- При закачке, файл помещается в очередь. Никаких операций с ним не производится. Он просто где-то сохраняется.
- По крону, например каждую минуту, вызывается обработчик, который смотрит содержимое очереди и обрабатывает файлы. Главное предусмотреть защиту от одновременного запуска нескольких инстанций.
Выяснил я, что большие файлы не из-за abiword не обрабатывались. В окончательном парсере, который html превращал в BB коды, был избыток регулярок. Кое-что подправил и файлы стали обрабатываться. Но это довольно ресурсоемкое занятие. Попробую ваш вариант. Большая очередь файлов не будет создаваться. возможно, как-то разобью задачу на этапы. Спасибо!