Cron — это основанный на времени планировщик задач в Unix-подобных операционных системах. Cron позволяет пользователям планировать задачи (команды или сценарии оболочки), чтобы запускать их периодически в определенное время или день. Он обычно используется для автоматизации обслуживания систем или администрирования. У Osclass имеется встроенный функционал для случаев, если в Вашей системе нет cron-демона — Вы можете включить/отключить его из панели администратора: Настройки > Главные. Рекомендуется прочитать больше о CRON в Википедии. Также рекомендуется использовать CRON Вашей системы вместо встроенного функционала Osclass, так как с первым Вы получите лучший результат. Мы используем этот функционал для запуска нескольких заданий, таких как как отправка уведомлений по электронной почте или подсчет количества элементов в категории.
CRON в Osclass
Как говорилось ранее, иногда нам нужно выполнять различные «задачи», от отправки оповещений по электронной почте до подсчета количества элементов в категории или разрешения плагинам, таким как sitemap, выполнять другие действия.
В идеальном мире на каждом сервере был бы включенный CRON, а Вы могли бы использовать такое количество задач cronjobs, какое бы только потребовалось. Но поскольку мы знаем, что это не всегда так, мы предлагаем данную встроенную функцию.
Настройка CRON при помощи Osclass
Настройка встроенного функционала при помощи Osclass
Чтобы использовать встроенные функции, Вам нужно будет отметить опцию Auto-cron в панели администратора, в разделе Настройки > Главные.
Настройте CRON своей системы при помощи Osclass
Чтобы использовать функционал CRON своей системы, Вам нужно снять пометку с опции Auto-cron в панели администратора, в разделе Настройки > Главные.
Cron доступен только на Unix системах (Linux, должен быть на Mac, но мне не удалось с ним поэкспериментировать). Большинство веб-серверов работают на дистрибутивах Linux, так что это не должно быть проблемой. На системах Windows существует несколько альтернатив CRON, которые работают по-разному. Обычно, Вам нужно войти на свой сервер через SSH (доступ через SSH) и ввести следующее в командной строке/терминале:
crontab -e
Вы попадете в список задач cron (cronjob list) в редакторе терминала (обычно vi, vim, nano или emacs). Затем, в зависимости от редактора, потребуется сохранить, закрыть, отредактировать сам файл, и т.п.
Большинство хостинг-компании не будут предлагать доступ по SSH, а среди тех, кто предлагают, некоторые из них не предложат Вам возможности изменять CRON, но предложат обходное решение через админ панель. Например, Dreamhost (в разделе Goodies > Cron) предлагает «простого мастера» для выполнения задач cronjobs, но ограничивает по одной задаче cronjob на пользователя (через терминал/SSH у Вас не будет ограничений).
Мы не можем предоставить вам больше информации, поскольку все зависит от Вашей хостинг компании/сервера.
Любой cron-задаче требуется интервал времени/время и команда, которую нужно выполнить, например, как (если хотите больше подробностей — загляните на википедию, я не буду говорить о различных параметрах времени)
* * * * * command params
В нашем случае мы хотим выполнить php файл — нам нужно иметь установленные версии php-cli или php-cgi, которые являются исполняемыми файлами PHP. (ПРИМЕЧАНИЕ: Некоторые сервера будут иметь только apache mod версию PHP, поскольку производительность с mod-версией снижается, а также будут иметь несколько меньших функций. Странно, что у некоторых серверов этого нет, но такое тоже может случиться! Спросите у своей хостинг-компании!). Нам нужно работать в CLI (c интерфейсом командной строки или исполняемой) версии PHP, мы должны использовать полный путь к файлу (ваш phpinfo может помочь вам в этом, или спросите у своего хостинг-провайдера!). Затем мы должны передать в качестве параметра или аргумента этот PHP файл, снова используя полный путь (ПРИМЕЧАНИЕ: Обычно, на серверах коллективного доступа для хранения пользователей и сайтов используется домашний каталог, поэтому Ваш путь будет /home/your_username/public_html, и опять, «public_html» — это одна из наиболее используемых папок, но ее название может отличаться, к примеру быть website, yourdomain.com и др. Кроме того, если Вы владеете частным серверов, то веб-путь будет скорее всего /var/www)
Crontab (если можно получить доступ через ssh)
Получите доступ к своему серверу через SSH, напечатайте
crontab -e
Вся задача cronjob должна выглядеть следующим образом
0 * * * * usr/local/php5/bin/php /home/your_username/public_html/index.php -p cron -t hourly
0 0 * * * usr/local/php5/bin/php /home/your_username/public_html/index.php -p cron -t daily
0 0 * * 0 usr/local/php5/bin/php /home/your_username/public_html/index.php -p cron -t weekly
Установлен запуск каждый час (путь исполняемого файла PHP может отличаться)
Мастер cron/управления задачами
На некоторых хостинг-сервисах не предоставляют возможность устанавливать задачи cron вручную, вместо этого они предлагают своим клиентам воспользоваться «мастером» или опцией в админ-панели для настройки заданий.
Dreamhost
В панели администратора нажмите «Goodies > Cron jobs > add new cron job»; так как на Dreamhost разрешают использовать только по одной задаче cronjob на пользователя, лучше использовать вариант ниже :
wget domain.com/index.php?page=cron -O /dev/null
и выбрать «Hourly» (каждый час)
Hostgator
Войдите в свою Cpanel, прокрутите вниз до раздела «Advanced», нажмите «Cron Jobs». Если Вы хотите узнать имеет ли место быть какая-либо ошибка, введите свой email.
Введите следующую команду:
wget domain.com/index.php?page=cron -O /dev/null
Выберите опцию запуска «Once an hour (0 * * * *)» (один раз в час), и все готово!
Различные настройки
• Наиболее благоприятный вариант
Вы можете запускать одну или несколько задач cronjobs. В таком случае, выплните oc-includes/osclass/cron.php в своей задаче cronjob ‘each hour’ (каждый час).
Не забудьте снять галочку в Настройки > Главные > Автоматический запуск Cron.
• Auto-cron
Если Вы не можете задать ни одну задачу cronjob, не хотите или не знаете, как задать ее, просто пометьте