
Уявіть, що вам доводиться оновлювати курси валют або правила каталожних цін і вручну генерувати карти сайту для веб-сайту. Здається неможливим сценарієм, чи не так? Все тому, що всі ці та багато інших завдань у вашому магазині вже виконуються за вас завданнями cron Magento 2.
Вони планують різні дії та виконують їх автоматично, навіть не помічаючи вас. Однак, якщо ви хочете дізнатися більше про продуктивність вашого магазину, вам потрібно дізнатися більше про завдання cron.
Отже, в цьому вичерпному посібнику ми розглянемо все, що вам потрібно знати про завдання cron Magento. Ви дізнаєтеся, як вони працюють і як ви можете запускати cron-завдання вручну безпосередньо з панелі адміністратора.
Що таке завдання cron Magento?
Завдання cron Magento – це один із багатьох інструментів, які Magento використовує для планування та виконання повторюваних завдань (таких як оновлення інвентарю, надсилання сповіщень про продукти або створення карт сайту) замість їх ручного запуску.
Завдання cron покладаються на crontab (файл конфігурації) для виконання команд та скриптів для виконання певних операцій у системі або розширеннях Magento 2.
Встановлення завдання cron Magento
Після встановлення Magento вам потрібно додати завдання cron до вкладки cron вашої операційної системи.
Примітка: ми не рекомендуємо робити це на ваших етапах розробки або в екземплярах, оскільки це може призвести до надсилання зайвих інформаційних бюлетенів вашим клієнтам.
Щоб зареєструвати завдання cron Magento у crontab вашої операційної системи (ОС), виконайте таку команду:
bin/magento cron:install
Це додасть новий запис у crontab ОС, який ви можете перевірити, виконавши:
crontab -l
Наприклад, ви побачите ці нові рядки в системному crontab:
#~ MAGENTO START d9b3d5d01f3432040ee22c71411078a3391f3096bf5aa3e7fcc82283245f0284
* * * * * /usr/bin/php /path-to-magento-folder/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /path-to-magento-folder/var/log/magento.cron.log
#~ MAGENTO END d9b3d5d01f3432040ee22c71411078a3391f3096bf5aa3e7fcc82283245f0284
Розклад Magento Cron
За замовчуванням Magento додає новий запис зі значенням * * * * *. Цей рядок часу вказує системі виконувати завдання cron Magento щохвилини.
![]()
наприклад Якщо ви хочете, щоб завдання cron запускалося кожні 5 хвилин, вам слід вказати */5 * * * *. Ви можете дізнатися більше про налаштування розкладу cron тут.
. Ми не рекомендуємо змінювати значення за замовчуванням, оскільки це може призвести до неправильного планування, запуску cron або навіть пропущені завдання cron Magento . Однак, якщо вам все ще потрібно змінити рядок часу, виконайте таку команду та відредагуйте її:
crontab -r
Команда консолі Magento bin/magento cron:run планує завдання cron Magento та запускає їх відповідно до розкладу.
Видалити завдання Cron
Якщо вам потрібно видалити cron Magento з crontab операційної системи, виконайте таку команду:
bin/magento cron:remove
Налагодження завдання Cron
Magento використовує файл magento.cron.log у папці var/log для зберігання всієї інформації про завдання cron, включаючи:
- Ідентифікатор та код завдання Cron
- Стан
- Дати створення, планування, виконання та завершення
Таким чином, якщо деякі завдання у вашому магазині, такі як оновлення правил цін кошика, не виконуються, перевірте magento.cron.log або таблицю cron_schedule у базі даних Magento. Остання містить інформацію про помилки та повідомлення про помилки.
Як налаштувати завдання cron у Magento 2?
Хоча Magento зберігає інформацію про завдання cron у таблиці cron_schedule , вона не зберігається безстроково. Magento видаляє цю інформацію через деякий час. Таким чином, якщо вам потрібно продовжити цей період, вам потрібно налаштувати завдання cron у Magento.
1. Перейдіть до Зберігання > Конфігурація > Додатково > Система > Cron (Заплановані завдання). Тут ви знайдете групу cron за замовчуванням разом із групами користувацькі завдання cron з різних розширень Magento 2, які ви використовуєте.
![]()
2. Параметри однакові для кожного cron-завдання, тому вам просто потрібно заповнити їх бажаним значенням.
3. Визначте, як часто ви хочете, щоб cron генерував розклад, у полі Генерувати розклади кожні .
4. Вкажіть час (у хвилинах), за який заздалегідь планувати завдання cron, у полі Запланувати наперед на .
, наприклад, якщо ви встановите тут 30, завдання cron будуть заплановані на наступні 30 хвилин після запуску cron-завдання.
5. Встановіть час (у хвилинах), який призначає завданню cron статус Пропущено , якщо воно не виконується після запланованого часу, у полі Пропущено, якщо не Запустити протягом.
6. Встановіть час (у хвилинах), після якого історія виконаних завдань має бути очищена, у полі Очищення історії кожні .
. 7. Визначте Час життя історії успіхів, який визначає час (у хвилинах), протягом якого завдання cron зі статусом Успішно повинні залишатися в базі даних.
8. Встановіть, як довго завдання cron зі статусом Помилка повинні залишатися в базі даних, у полі Час життя історії невдач.
9. Виберіть, чи хочете ви запускати всі завдання cron з групи окремо в Використовувати окремий процес.
. Якщо ви встановите значення Так, коли виконується команда bin/magento cron:run , вона запускає групу cron асинхронно та автоматично запускає наступну команду:
bin/magento cron:run --group [cron group name]
![]()
Не забудьте Зберегти налаштування та повторити їх для інших груп завдань cron, якщо потрібно.
На жаль, це єдині налаштування панелі адміністратора для завдання cron Magento. Тому вам все одно потрібно внести зміни до коду, щоб перепланувати або вимкнути певні завдання cron . Але не якщо ви дотримуватиметеся інструкцій нижче.
Виконання та планування кронів Magento в панелі адміністратора
Навіть якщо ви не технічний спеціаліст, ви можете виконувати завдання cron вручну з панелі адміністратора, якщо використовуєте . Це дуже просто, що дозволяє легко керувати завданнями cron Magento.
Щоб почати, перейдіть до Система > Cron > Завдання cron та почніть фільтрувати завдання coron, які ви хочете перепланувати або повторно запустити.
![]()
Щойно ви знайдете потрібне завдання coron, натисніть на нього, щоб відкрити редактор і змінити розклад. Якщо вам потрібна порада щодо того, як працюють значення часу розкладу cron, перейдіть до початку цього посібника.
![]()
Щоб виконати деякі конкретні завдання cron, поставте позначки біля них та виберіть опцію Виконати у випадаючому списку масових дій. Вибрані завдання cron слід виконати негайно.
![]()
Крім того, ви також можете ввімкнути або вимкнути завдання cron Magento з тієї ж таблиці. Знову ж таки, поставте позначки біля всіх завдань cron та виберіть Стан > Увімкнути/Вимкнути з масових дій.
![]()
Як бачите, завдання cron Magento є життєво важливими для різних завдань Magento, якщо ви не хочете запускати переіндексацію, оновлювати курси валют та надсилати розсилки вручну.
Ось чому знання того, як налаштовувати та запускати cron-завдання в Magento, стане в пригоді як розробникам, так і адміністраторам магазину. Завдання ще більше спрощується, якщо ви можете перевірити стан cron-завдання та налаштувати сповіщення cron-завдань безпосередньо в адміністративній панелі, чи не так?