Основы работы планировщика задач (cron) в Мадженто

В сегодняшнем посте мы вкратце рассмотрим работу Cron в Мадженто.

 

Основы

Система Cron в Magento используется для выполнения задач на постоянной основе и по расписанию. Основным файлом для запуска планировщика задач является файл cron.php в корне папки Magento-сайта. Чтобы запустить Cron, вам нужно поставить этот файл в задание планировщика на веб-сервере. И настроить частоту его запуска.

 

Рекомендуется устанавливать cron для Magento, поскольку с его помощью движок решает различные задачи: например, делает очистку логов, рассылает информационные бюллетени, рассылает на почту уведомления о новых заказах и т.п

 

 

Как добавить Cron для пользовательского модуля

Чтобы добавить cron задание в свой модуль, добавьте соответствующие xml-инструкции в файл config.xml модуля:

 

<default>
 <crontab>
  <jobs>
   <job_unique_name>
    <schedule>
     <cron_expr>*/15 * * * *</cron_expr>
    </schedule>
    <run>
     <model>module/observer::cronMethod</model>
    </run>
   </job_unique_name>
  </jobs>
 </crontab>
</default>

 

  • job_unique_name – любое уникальное имя для задачи
  • cron_expr – здесь указывается любое допустимое выражение cron (частота)
  • module/observer – действующая Модель в модуле
  • cronMethod – это функция внутри этой Модели

 

В примере мы используем выражение */15 * * * * для нода cron_expr. Оно означает, что cron нужно запускать каждые 15 минут. Это вполне нормальное расписание, меньшие значения могут не поддерживать некоторые серверы.

Наблюдатель (observer): в наблюдателе мы вызываем метод (функцию), которым будет управлять cron.

Пример обсервера:

 

class Sebweo_Test_Model_Observer
{
  public function cronMethod() {
    // do something
  }
}

 

 

Настройки для cron задаются в админпанели по адресу: Система -> Конфигурация -> Расширенная -> Система -> Cron

Статус всех заданий cron Magento хранит в таблице cron_schedule базы данных. Эта информация может вам пригодиться при отладке работы cron.

ВНИМАНИЕ: Если какое-либо из заданий cron настроено с ошибкой, все другие задания cron также не будут выполняться, поскольку все они выполняются поочередно.

 

 

Работа Magento Cron в деталях

Теперь давайте заглянем в исходный код Magento и посмотрим, как выполняется cron.

 

Файлы для рассмотрения:

  1. cron.php
  2. Mage_Cron_Model_Observer
  3. app/code/core/Mage/Cron/etc/config.xml

 

Начальной точкой является файл cron.php в корне сайта. Здесь мы видим:

………..
Mage::getConfig()->init()->loadEventObservers('crontab');
Mage::app()->addEventArea('crontab');
Mage::dispatchEvent('always');
Mage::dispatchEvent('default');
………..

 

Поэтому Magento загружает сначала все обсерверы из области crontab, а затем делает диспетчеризацию событий «always» и «default».

Оба этих события определены в файле app/code/core/Mage/Cron/etc/config.xml

 

<crontab>
 <events>
  <default>
   <observers>
    <cron_observer>
      <class>cron/observer</class>
      <method>dispatch</method>
    </cron_observer>
   </observers>
  </default>
  <always>
   <observers>
    <cron_observer>
      <class>cron/observer</class>
      <method>dispatchAlways</method>
    </cron_observer>
   </observers>
  </always>
 </events>
</crontab>

 

 

Это всего лишь один небольшой пример использования cron. Существует множество возможностей для внесения изменений и улучшений под свои потребности. И вам поможет в этом информация о том, как это работает.

 

Recent Posts

Уильям Шекспир

Грехи других судить вы так усердно рветесь, начните со своих и до чужих не доберетесь… Read More

18/04/2021

Что подарить друзьям на годовщину свадьбы

Люди, между которыми есть любовь и взаимопонимание, скрепляют отношения и зарождают новый союз, а дату… Read More

13/04/2021

Авторитетность домена и его влияние на SEO продвижение сайта

Для качественного SEO (поисковой оптимизации, раскрутки сайта) одним из важных показателей является Авторитет домена (Domain… Read More

27/03/2021

Как вывести деньги из PayPal – основные способы

Выяснение того, как вывести свои деньги с PayPal, является одним из первых вопросов, которыми озадачивается… Read More

26/03/2021

Как выбрать юбку под свою фигуру на LeBoutique

Юбка – мощный элемент женского гардероба, благодаря которому любой наряд будет выглядеть потрясающе стильно и… Read More

25/03/2021

Основные методы линкбилдинга: как получить качественные внешние ссылки на сайт

Поисковые системы (например, Google) проверяют технические характеристики вашего сайта, такие как скорость загрузки, удобство навигации,… Read More

24/03/2021