16 сентября 2006

Нет CRONа? Ну и ладно!

У многих такая проблема - на серваке нет Cron или доступа к нему админ не даёт, а какие-то действия всё же надо выполнять регулярно. Вот мои мысли по этому поводу.

1. Если действия нужны, но поскольку-постольку. Например, такие апдейты данных в базе, как ежесуточное обновление каких-то рейтингов,  дефрагментация таблиц, обсчёт сводных данных. Суть в том, что если на сайт никто не заходит и ничего не делает, то и производить это действия - не требуется, верно? Значит, имеет смысл сделать мнимый Cron из пользователей: зашёл пользователь - операция выполнилась. Ну можно не на каждом пользователе делать, а, скажем, проверять, прошли ли сутки с момента последнего запуска или нет (момент последнего запуска хранится в базе в таблице с настройками).

2. Обязательные действия (например, рассылка спама почты). Можно обойтись тоже без готового крона,  а написать свой (или покапаться в инете и найти готовый, вряд ли я щас Америку открываю). Суть простая, думаю, строк 10 займёт всего: бесконечный цикл, на каждой итерации - выполнение очередных зашедуленных действий, а потом - усыпление скрипта до часа Х (скажем, до полуночи, или на одну минуту, это уже как вам надо), чтобы не грузить систему своими циклами. Усыпление до часа Х отлично делается функцией time_sleep_until().

0 комментов:

Отправить комментарий