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