Обучение HTML, Excel, Word. Как сделать свой сайт бесплатно

Microsoft Office

Сайтостроение

HTML

Программинг

Компьютер

Графика

Разное

· Основы Word
· Основы Excel
· Основы VBA
· Основы OpenOffice
· Как сделать сайт
· Свой сайт от А до Я
· Оптимизация сайта
· Шаблоны для сайта
· Обзор CMS
· Основы HTML
· HTML-теги
· Основы CSS
· Основы PHP
· Основы JavaScript
· Софт для сайта
· Что внутри ПК
· ПК для чайников
· Все о BIOS
· Web-графика
· САПР: AutoCAD
· Статьи
· Форум
· SEO-новости
Главная страница Карта сайта
Учебник PHP
Основы SQL
  1. Введение
  2. Инструменты
  3. Первый шаг
  4. Структура языка
  5. Массивы
  6. Глобальные массивы
  7. Cookies
  8. Сессии
  9. Загрузка файлов
  10. Работа с файлами
  11. Работа с базами данных
  12. Работа в сети
  13. Отправка почты
  14. Безопасность
  15. Автоматизация
  16. Регулярные выражения в PHP
  17. Интеграция
 

установка drupal на хостинг



Автоматизация

Автор: Артемьев Сергей Игоревич
ICQ: 438856621
email: _spin_@bk.ru

Иногда на сайте возникает необходимость организовать периодическое выполнение каких-либо задач. Это может быть рассылка почты, проверка и резервирование баз данных, чистка кешей, обновление содержимого каталогов и многое другое.


Автоматизации можно добиться двумя путями - используя средства PHP или используя внешние приложения-планировщики.


Первый способ требует хороших знаний языка и принципов работы сервера. Смысл способа в том, что ппосле каждой загрузки страницы скрытно для пользователя запускается служебный скрипт, делающий все необходимые операции. Например:

// index.php

<?php
	// генерация и вывод страницы пользователю
	// ...
	// страница отправлена и можно 
	// выполнить сервисные функции
	
	// подключаем нужные файлы
	include('service.php');
	// запускаем выполнение операций
	EmailSiteNews();
	BackupMyDatabase();
	UpdateSiteCounters();

?>

Единственное преимущество этого метода - не требуется ничего, кроме интерпретатора PHP, а вот серьёзных недостатков несколько:

1. Сервисные операции выполняются при каждой загрузке или обновлении страницы, следовательно при большом количестве посетителей сервер будет сильно перегружен.

2. Сервисный скрипт должен контролировать время своего выполнения и своевременно сохранять промежуточные результаты, т.к. на на сервере существует предельное время выполнения скриптов (обычно 30-40 секунд). по истечении которого скрипт принудительно прерывается.

3. Отсутствует возможность планирования выполнения скрипта, т.е. если ни один пользователь на сайт не зайдёт - все задачи останутся неисполненными.

4. При неправильной обработке ошибок они будут отображаться в браузере пользователя. Это плохо само по себе, а в некоторых случаях такие ошибки приводят ещё и к "расползанию" дизайна.

5. Очень сложно планировать нагрузку на сервер, т.к. посещаемость сайта можно предсказать лишь с определённой вероятностью.

Более оптимальным и простым решением является использование внешних программ-пранировщиков. Например, большинство Unix-провайдеров предоставляют доступ к программе crontab, которая даёт возможность запланировать выполнение любых задач на определённое время или с заданной периодичностью. Сrontab позволяет выполнять скрипты PHP, при этом интерпретатор запускается в режиме командной строки.

Как правило, в панели управления хостингом есть визульный интерфейс для редактирования cron-правил. Чаще всего встречаются два типа интерфейсов - классический и расширенный. Функционально они идентичны, но расширенный вид более нагляден и понятен начинающему пользователю. В любом случае, при создании нового задания вам необходимо будет указать три параметра: время запуска, скрипт для запуска и адрес электронной почты, куда будет направлен отчёт о выполении.

Время запуска задаётся пятью блоками: минута, час, день_месяца, месяц и день_недели. Для каждого блока можно указать периодичность, точное значение, диапазон или список значений, а если указать "*" (звёздочка), то значение учитываться не будет. Например:

// ежендевный запуск в 3:00
* 3 * * *

// запуск скрипта каждые пять минут // ("/" - означает "каждые")/ */5 * * * *
// ежечасный запуск скрипта // в понедельник с 3:00 до 7:00 * 3-7 * * * mon
// ежечасный запуск скрипта // в понедельник с 3:00 до 5:00 * 3,4,5 * * * mon
// запуск в новый год 59 23 31 dec *

Второй параметр - это собственно исполняемая команда. В большинстве случаев команда выполнения скрипта записывается в формате <путь_к_интерпретатору> <полный_путь_к_скрипту>. При этом все пути указываются полностью, начиная от корневого каталога сервера. Например, интерпретатор расположен в "./local/sbin/php5.exe", а исполняемый скрипт - в "web/http/service.php". Если нам надо выполнять скрипт ежечасно, то строка задания будет следующей:

0 * * * * /local/sbin/php5.exe /web/http/service.php

Третий параметр - адрес электронной почты - вводится один раз для всех заданий. Результаты выполнения задачи будут высылаться на указанный адрес. Если скрипт был завершен с ошибкой - в тексте письма будет соответствующая запись с указанием ошибки и строки, где она произошла. К сожалению, сообщения будут приходить и тогда, когда всё прошло успешно, поэтому если вы решили выполнять скрипт ежеминутно - готовьтесь получать по шестьдесят писем в час.

Запуск интерпретатора в режиме командной строки накладывает некоторые ограничения на программиста. Так, становятся недоступны некоторые глобальные массивы и переменные Apache. Поэтому на crontab не стоит возлагать задачи, требующие знания настроек web-сервера или других системных параметров.

Таким образом, если ваш провайдер и предоставляет доступ к планировщику заданий - обязательно пользуйтесь им и не изобретайте велосипед. Ну а если уж выбора не остаётся и crontab недоступен - выходите из положения средствами PHP и собственной смекалкой.

top




 




Спасибо, что заглянули на сайт. Надеюсь, Вам понравилось. Заходите еще. Здесь всегда рады вам :)
При копировании материалов, размещенных на сайте, ссылка на первоисточник обязательна.
Если понравился этот сайт..

© 2005-2012
Юрий Кордык All Rights Reserved

 

E-mail:
admin@on-line-teaching.com