Список постов по тегу «wget»
Подводные камни wgetа @ Сб, 14 марта 2009, 09:43
Использовать wget нужно осторожно нахуй!
Рассказываю историю:
У меня в движке блога есть понятие «отложенная запись» — т.е. я могу задать любой записи дату, когда она появится. Для некоторых проектов незаменимо — можно забить его при создании на 2-3 месяца вперед, а потом заниматься своими делами.
Так вот, чтобы при выборке записей небыло условий вроде
Разумеется, переодически приходится проверять поле
Т.к. ssh у меня есть не ко всем возможным проектам, то кроновую часть решил написать в виде простой веб-странички, которую я буду запрашивать через крон wget'ом.
Ну я написал в кронтабе:
и ушел довольный. Все работало, посты появлялись и никакой нагрузки это не создавалось.
ВНЕЗАПНО (через несколько месяцев) хостеры обращают внимание, что:

Ёбанный пиздец! Я нихуя не понимаю, т.к. запрос там простейший, времени занимать много не может по определению, а уж даже если и занимает, то уж вешаться должен php или mysql, а не wget.
Тут-то я и обнаружил в home адов ад — сотни тысяч файлов вида index.html.42432
Сука-wget.
Файлов было настолько много, что:
Ыхыхыххы.
Ну и соответственно, когда wget пытался найти следующее имя файла, ему приходилось делать стотыщ итераций по поиску следующего имени файда для вывода. Ну и он вис. Ад, какой ад.
Спасло положение изменение строки крона на:
В общем, надо иметь ввиду, что если вгету явно не указать файл для вывода, то он начиает охуевать.
Рассказываю историю:
У меня в движке блога есть понятие «отложенная запись» — т.е. я могу задать любой записи дату, когда она появится. Для некоторых проектов незаменимо — можно забить его при создании на 2-3 месяца вперед, а потом заниматься своими делами.
Так вот, чтобы при выборке записей небыло условий вроде
`blog_posts`.`pubdate` <= CURDATE() (что достаточно медленно) я выбираю просто `blog_posts`.`status` = 'posted' (это enum-поле, и оно может быть waiting, posted или deleted) что быстро и удобно. Ну и до этого у меня уже во всех выборках (например предыдущий пост, следующий, случайный, итд) постов было условие `blog_posts`.`status` = 'posted', то и переписывать все выборки тоже было лень.Разумеется, переодически приходится проверять поле
pubdate и ставить всем записям которым наступило время показаться статус posted. Ну т.е. как переодически — раз в минуту. Ну т.е. как приходится — кроном.Т.к. ssh у меня есть не ко всем возможным проектам, то кроновую часть решил написать в виде простой веб-странички, которую я буду запрашивать через крон wget'ом.
Ну я написал в кронтабе:
* * * * * wget http://rulezdev.com/cron/ и ушел довольный. Все работало, посты появлялись и никакой нагрузки это не создавалось.
ВНЕЗАПНО (через несколько месяцев) хостеры обращают внимание, что:

Ёбанный пиздец! Я нихуя не понимаю, т.к. запрос там простейший, времени занимать много не может по определению, а уж даже если и занимает, то уж вешаться должен php или mysql, а не wget.
Тут-то я и обнаружил в home адов ад — сотни тысяч файлов вида index.html.42432
Сука-wget.
Файлов было настолько много, что:
[rulezzz@hosting ~]$ rm index.html.*
-bash: /bin/rm: Argument list too longЫхыхыххы.
Ну и соответственно, когда wget пытался найти следующее имя файла, ему приходилось делать стотыщ итераций по поиску следующего имени файда для вывода. Ну и он вис. Ад, какой ад.
Спасло положение изменение строки крона на:
wget -o /tmp/wget-dw.log -q -O /tmp/wget-content.log http://rulezdev.com/cron/ В общем, надо иметь ввиду, что если вгету явно не указать файл для вывода, то он начиает охуевать.
