Re: Download notify модуль

Alexandre Snarskii snar на snar.spb.ru
Вт Фев 22 12:13:53 MSK 2011


On Mon, Feb 21, 2011 at 02:07:26PM +0300, Grigory A. Mozhaev wrote:
> > > Скрипт notify должен дергаться только в том случае, когда файл полностью
> > > скачан. Передаваемые параметры:
> > > URL загруженного файла, успех или ошибка при загрузке, скорость
> > > загрузки (средняя), ip адрес.
> >
> > Вы уж определитесь, нужно ли звать этот скрипт "только в случае, когда
> > файл полностью скачан", или и в случаях "ошибка при загрузке".
> В скрипт notify должна поступать статус закачки. А скрипт дергается только 
> по факту полного завершения операции скачивания. Если файл полностью 
> скачан - значит 'SUCCESS', если произошла ошибка то, соответственно, 
> 'FAILED'. 
> 
> > Если второе - посмотрите на post_action, который практически
> > не описан, но, jimho, вполне может решить задачу без написания
> > дополнительного модуля.
> Не совсем понимаю, как post_action сможет решить задачу 
> вычисления скорости закачки.

$body_bytes_sent/$request_time ? Вполне себе средняя скорость... 

Впрочем, похоже этот подход действительно не сработает:
$request_time в отличие от $body_bytes_sent определяется
только на момент записи в лог, в post_action его еще нет.

(possible workaround: с помощью встроенного perl'а запоминать 
момент начала запроса и на момент post_action сравнивать 
с текущим временем). 

> Единственное более-менее рабочее (сам не проверял) полу-решение нашел здесь:
> http://abarmotik.livejournal.com/7496.html
> 
> А вот товарищ вопрошает список рассылки, но ответа нет.
> http://nginx.org/pipermail/nginx-ru/2009-June/025566.html
> Как и в других местах в интернетах.
> 
> Разве модуль не будет изящным решением наболевших проблем? 

jimho, не будет. Модуль нужно написать/выкачать, вкомпилировать 
в nginx (в некоторых случаях - убедить хостинг-провайдера 
вкомпилировать), и, самое главное, не забывать делать это каждый 
раз при апгрейде nginx. Плюс, наверное самое главное - ошибка в 
модуле может привести к падению/зависанию всего nginx'а. 

post_action же вызывает совершенно стороннюю программу, глюк в 
которой для nginx'а (и, соответственно пользователей вашего 
сайта) останется незаметным.

-- 
In theory, there is no difference between theory and practice. 
But, in practice, there is. 



Подробная информация о списке рассылки nginx-ru