Как мне асинхронно запускать вещи?


Я использовал Drupal 7.14, видеомодуль 7.x-2.5, видеомодуль 7.x-2.0 HTML5-плеер и ffmpeg 0.7.2 для перекодирования видео mp4 объемом 200 Мб в форматы Ogg, Flv, MP4. Процесс работал, но занял более 1 часа. Используя командную строку, я могу передавать файлы и перекодировать один и тот же файл менее чем за 15 минут.

Помимо увеличения вычислительной мощности сервера или желания, чтобы Drush обрабатывал перекодирование видео с помощью ffmpeg, кто-нибудь еще загружает процессы Drupal с помощью разветвления процессов PHP или Асинхронно с помощью Javascript, т. Е. node.js ?

В идеале, как только я нажму сохранить в любой форме Drupal, дочерний процесс должен появиться и работать на стороне, пока я занимаюсь другими делами, без блокировки моего интерфейса администратора для обработки одной вещи (синхронное кодирование). Спасибо за ваше время,

Author: kiamlaluno, 2012-06-15

2 answers

Загляните в Библиотеку параллельных запросов и потоков HTTP. Модуль Кэш Imageinfo использует его для создания предустановок кэша изображений при загрузке файла в форму узла и выполняет окончательную проверку сохранения узла; все в фоновом режиме. Другой модуль, который нужно изучить, - это Фоновый процесс, он делает то же самое, что и HTTPRL, и 2 модуля на самом деле хотят объединиться (http://drupal.org/node/1357652 ).

Пример того, как смыть кэш в фоновом режиме находится в файле чтения httprl

 4
Author: mikeytown2, 2012-06-15 22:53:38

Вы можете использовать hook_cron(), чтобы добавить это в следующее задание cron.

 0
Author: Mike, 2012-06-15 21:19:04