Пришел на сайт пользователь, залил картинку/программу/видео, которое надо обработать: для картинки нужно сгенерировать тумбинашку, архив просканить на вирусы, а видео перекодировать в FLV/3GP.
Как это лучше сделать? Обычно, простые операции делают прямо при обработке запроса, т.е. как только получили картинку - сразу ее ресайзим до тумбинашки/генерим дополнительные картинки. Аналогично со сканированием на вирусы. А вот если нам залили большую картинку (jpeg на 20 метров при распаковке может сожрать 1-2 гигабайта оперативы), или прислали большой архив, то операция может быть довольно длительной, а в результате юзер отвалится по таймауту. А если будет несколько таких запросов, то тут вообще сервер ляжет.
Появилась идея: отвязать процесс преобразовывания/проверки от основной обработки запроса. Сделать отложенную операцию, как это делают при перекодировании видео: создается "задание" на работу, а отдельный скрипт-сервис (демон) по мере возможности выполняет задания. Пока задание не выполнено - пользователю выводится "подождите", или "скоро будет".
Дык вот, насколько оправдано такое отвязывание? Не будет ли резкой потери производительности, особенно на мелких картинках? Ведь пользователь сразу хочет видеть свои фотографии, при этом ему нет дела до загруженности сервера, а демон будет все выполнять в порядке очереди, да и "в один поток", не допуская перегрузки.