Cron to narzędzie (w systemach Unix i Linux), które pozwala automatycznie uruchomić na serwerze cykliczne zadania o określonym czasie i dacie. Może to być włączenie jakiegoś skryptu, programu, procedury SSH itd. W Magento popularne usługi Crona to na przykład: masowe wysyłanie wiadomości email, aktualizacja cen, stanów magazynowych, generowanie map witryn Google lub feedów, reindex.

USTAWIENIE USŁUGI CRON W MAGENTO 2

Przykład

1. Utwórz nowy moduł np: Geek_Tester (app / code / Geek / Tester):

– zdefiniuj moduł w pliku module.xml (app / code / Geek / Tester / etc / module.xml):

– zarejestruj moduł w pliku registration.php (/ app / code / Geek / Tester / registration.php):

2. Ustaw konfigurację Crona w pliku crontab.xml (/ app / code / Geek / Tester / etc / crontab.xml):

  • <group> – znacznik grupujący zadania Crona; atrybut id=”default to identyfikator grupy,
  • <job> – znacznik zadania ma trzy atrybuty: name=”custom_cronjob” – nazwę zadania, method=”execute” – nazwę metody wykonywanej w instancji: instance=”Geek\Tester\Cron\Test”,
  • <schedule>* * * * *</schedule> – (harmonogram) czas na cykliczne wykonanie zadań z metody execute; w tym przypadku pięć gwiazdek oznacza, że „co minutę”.

Poniżej znaczenie poszczególnych symboli ” * ” (od lewej strony):
* – minuta (0 – 59)
* – godzina (0 – 23)
* – dzień miesiąca (1 – 31)
* – miesiąc (1 – 12)
* – dzień tygodnia (0 – 7) (Niedziela = 0 lub 7)

Przykład zadania uruchamianego co 5 minut:

3. Zapisz plik Test.php (app / code / Geek / Tester / Cron / Test.php). Metoda execute korzystając z interfejsu Logger zapisuje w logach serwera krótką informację „Test Cron” i datą wykonania zadania.

4. Uruchom w wierszu poleceń poniższe procedury. Spowodują one aktualizację wpisów w bazie danych, kompilację kodu PHP i opróżnienie cache Magento.

5. Manualne wywołanie wszystkich zadań Crona:

Polecenie należy powtórzyć dwa lub trzy razy. Przy pierwszym uruchomieniu Cron kolejkuje zadania a następnie uruchamiane są poszczególne zadania. Stany operacji zapisywane są do tabeli cron_schedule.

6. Otwórz plik system.log (var/log/system.log). Powinieneś otrzymać jeden lub więcej podobnych wpisów:


KONFIGURACJA NIESTANDARDOWEJ GRUPY ZADAŃ CRON

Jeśli chcesz aby zadania działały według niestandardowego harmonogramu lub z różnymi ustawieniami to zapisz plik konfiguracyjny cron_groups.xml (app / code / Geek / Tester / etc / cron_groups.xml):

Identyfikator grupy id=”geek_group_name” musisz zaktualizować również w pliku crontab.xml:

Uruchom z wiersza poleceń grupę zadań Crona o nazwie geek_group_name:

Ustawienia z pliku cron_groups.xml pojawią się dodatkowo w panelu admina w sekcji: Sklepy > Ustawienia > Konfiguracja > Zaawansowane > System – zakładka „Cron (Zaplanowane zadania)„: