![]() |
|
|
as_nightjobs: ночное обслуживание сайтаЕсть некоторый "стандартный" набор задач, связанных с оптимизацией сайта и экономией дискового пространства, которые необходимо выполнять периодически, например, удаление старых файлов, оптимизация данных в БД, проверка общего занятого дискового пространства, занимаемого сайтом.Если Ваш тарифный план хостинга предусматривает ограниченный "предоплаченный" лимит занимаемого пространства на диске (а обычно так и есть), было бы неплохо отслеживать динамику "роста" сайта и прогнозировать, через сколько дней сайт может преодолеть этот лимит (если будет сохранять нынешние темпы роста). Данный класс сводит в "один флакон" следующие функции:
Если задание стартовано из CRON или любого другого "шедулера", итоговый отчет отсылается на заданный email адрес администратора сайта. Установка на сайт
Упрощенный пример кодаrequire_once('as_dbutils.php');
require_once('as_nightjobs.php');
// не забыть подключиьтся к своей БД MySQL !
$job = new CNightJobs();
$job->SetAdminEmail('admin@mysite.net'); # отчет посылпть на этот адрес
$job->SiteSizeParameters('..', 'sitestatistic', 1000,array('mydb1','mydb2'));
# корневая папка сайта - "../", лимит диск-пространства - 1 GB
$job->Exec();
Использование классаВсе задания по обслуживанию сайта выполняются из метода Exec(), поэтому ВСЕ необходимые параметры должны быть установлены до его вызова. Если не устанавливать некоторые параметры, соответствующие задания не будут выполняться. Далее - полный перечень методов.CNightJobs($apptitle='') - конструктор класса, необязательный параметр - титульная строка, используемая только при создании сабжа отправляемого письма с отчетом о работе. SetTablesList($tblist, $tblist2=0) - задание списка таблиц, подлежащих операциям резервного копирования и/или оптимизации. Второй параметр $tblist2 может быть использован, если в резервной копии нужно отделить "большие" таблицы от "малых" - справочников и т.п. Это может быть полезно, когда вы решите восстановить некоторые данные. Процесс восстановления из большого бэкап-файла, будучи стартован через WEB-интерфейс, может прерваться по тайм-ауту, что может привести к непредсказуемому состоянию данных. Для таких случаев сохранение справочников и других мелких таблиц в отдельный бэкап - хороший вариант. Оба списка таблиц будут использованы не только в процедуре создания бэкапов, но и в процессе оптимизации данных. SetBackupParameters($back_folder, $bckpdays=10,$nobackup=null, $prefix='',$prefix2='') - задает параметры для создания бэкапов данных из БД :
AddFolderToClean($folder,$mask='',$days=0) - добавляет одну папку в список "на очистку от файлов"
примечание : вложенные папки не обрабатываются. AddTableToShrink($tablename, $datefield) - добавляет имя таблицы "на сжатие", что означает удаление записей, созданых ранее чем указанное число дней назад. Обычно используется для "ротации" записей в таблицах логов пользовательской активности.
TableShrinkDays($days) задает кол-во дней хранения записей в "сжимаемых" таблицах. Если не вызывать этот метод, будет 30 дней по умолчанию. SetEmailParameters($email,$charset='') задает email администратора сайта, на который высылается отчет о работе. Необязательный параметр $charset может содержать корректное имя charset-а, тмпользуемого при формировании сообщения. Если ваша пользовательская функция возвращает локализованный текст, необходимо здесь указать соответствующий чарсет. Если же "ваш" текст состоит только из символов латиницы, данный параметр не нужен. SetUserFunction($udf) задает имя вашей функции, в которую собраны все дополнительные вызовы ваших собственных процедур. Эта функция вызывается после отработки всех "штатных" заданий. Строка, возвращенная этой процедурой, дописывается в конец отчета. AppendUserFunction($udf) добавляет вашу функцию в список, исполняемый после обработки основного блока. Идентичен методу SetUserFunction(), так что SetUserFunction() остается из соображений совместимости с уже написанными программами. PrependUserFunction($udf)добавляет вашу функцию в список, исполняемый ДО обработки основного блока. Например, если у вас есть свои функции оптимизации/удаления ненужных данных, имеет смысл вызывать их до выполнения анализа "роста сайта", производимого в основном блоке. SiteSizeParameters($rootfolder, $sitesizetable='',$maxsitesize=0, $dblist=0) задает параметры для процедуры подсчета общего размера сайта, расчета средней скорости роста и оценки времени, оставшегося до превышения лимита.
Exec() - фактический запуск всех заданий по обслуживанию и оптимизации сайта. Итоговый отчет выводится на экран и отсылается на email адрес администратора, ( если он был задан и скрипт стартован из шедулера/CRON ). В классе есть несколько внутренних функций, вызываемых из Exec(), но их также можно вызывать самостоятельно. История версий1.01.002 (04/24/2009)
1.00.001 (01/26/2009)
|
||||||||||||||||||||||||||||||||||||||||||||||
Copyright © 2008-2010 selifan.ru | |||||||||||||||||||||||||||||||||||||||||||||||