У сьогоднішньому пості ми коротко розглянемо роботу Cron в Мадженто.
Система Cron в Magento використовується для виконання завдань на постійній основі і за розкладом. Основним файлом для запуску планувальника завдань є файл cron.php в кореневій папці Magento-сайту. Щоб запустити Cron, вам потрібно поставити цей файл в завдання планувальника на веб-сервері. І налаштувати частоту його запуску.
Рекомендується встановлювати cron для Magento, оскільки з його допомогою двигун вирішує різні завдання: наприклад, робить очистку логів, розсилає інформаційні бюлетені, розсилає на пошту повідомлення про нові замовлення і т.п.
Щоб додати 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.
Файли для розгляду:
cron.php
Mage_Cron_Model_Observer
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. Існує безліч можливостей для внесення змін і поліпшень під свої потреби. І вам допоможе в цьому інформація про те, як це працює.
Навчання за кордоном вже давно асоціюється з якісною освітою, новими можливостями та безліччю перспектив. Але…
Вибір майстра для ремонту та перетяжки меблів – завдання, яке потребує вдумливого підходу. Адже від…
Вибір ідеального хостингу під свій сайт може бути досить заплутаною справою, особливо коли існує багато…
Щоб уникати помилок, потрібно набиратися досвіду; щоб набиратися досвіду, потрібно робити помилки Лоуренс Пітер
Коротке визначення Чорного SEO Чорне СЕО (або Чорна оптимізація) — це будь-яка практика, метою якої…
Отримання прав водія категорії C відкриває двері до професійної діяльності, пов'язаної з керуванням вантажними автомобілями.…