Использование Javascript для выполнения процесса и отправки обновлений / обратных вызовов на веб-сервер - PullRequest
0 голосов
/ 11 октября 2008

Я работаю над процессом, позволяющим людям загружать файлы PDF и управлять документом (порядок страниц) через веб-интерфейс.

Страницы файла PDF необходимо обрезать до определенного размера для печати, и в настоящее время мы запускаем их с помощью действия Photoshop, которое позаботится об этом.

Что я хочу сделать, это загрузить файлы PDF на выделенный сервер для выполнения желаемого процесса (действия в Photoshop, конвертировать, отправлять изображения обратно на веб-сервер).

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

Кроме того, каковы некоторые хорошие методы для организации очередей / отслеживания заданий / процессов в целом (с акцентом на веб-технологии)?

Ответы [ 2 ]

1 голос
/ 14 октября 2008

Создайте очередь и отправьте туда задания. Запустите cronjob или демон, который получает задания из очереди и обрабатывает их. Убедитесь, что вы используете какую-то блокировку, чтобы вы могли безопасно остановить / запустить демон / задание.

Если вы ожидаете, что работа быстро закончится, вы можете использовать технику, известную как «комета». По сути, вы устанавливаете соединение из javascript (используя XmlHttpRequest) с вашим серверным скриптом. В этом сценарии вы проверяете, завершена ли работа. Если нет, вы спите секунду или две - тогда проверьте еще раз. Вы продолжаете делать это, пока работа не закончится. Тогда вы даете ответ обратно. В результате запрос может занять некоторое время, но он вернется немедленно. Затем вы можете предпринять соответствующие действия в javascript (перезагрузить страницу или что-то еще).

1 голос
/ 14 октября 2008

Дерек, я уверен, что у вас есть причины для использования Photoshop, но если серьезно, то Imagemagick сделал для вас недостаточно? Однажды я работал с утилитой факса, которая конвертировала файлы Fax.g3 в формат TIFF, затем с помощью Imagemagick увеличила контраст и яркость на 15% и преобразовала его обратно в PDF. IM работал как отдельная программа Linux, вызываемая вызовом system(), и я знаю, что есть новое расширение Imagemagick PECL.

...