]]>

Magento Cron - Zaplanuj zadania w swoim sklepie

2012-03-21 09:23 przez administrator

Czym jest Cron i za co odpowiada w Magento ?

Cron to narzędzie służące to planowania automatycznego uruchamiania skryptów i poleceń w systemie.

Domyślnie Magento korzysta z niego między innymi do:

  • utrzymywania aktualnych indeksów bazy danych,
  • aktualizacji reguł cen produktów
  • wysyłki newsletter
  • powiadomień klientów sklepu o zmianach w produktach,
  • aktualizacji przeliczników walut
  • czyszczenia logów
  • generowania mapy strony

Dodatkowo w grę wchodzą także zaplanowane zadania skonfigurowane w dodatkowych modułach, które instalowałeś w sklepie.

Czy Cron jest mi potrzebny ?

Wiem, że być może do tej pory mogłeś obejść się bez używania tego narzędzia. Przykładowo reindexy bazy od czasu do czasu wykonywałeś ręcznie, nie wysyłasz newslettera do swoich klientów, sklep obsługuje tylko jedną walutę, a resztą nie zwracałeś sobie głowy i jakoś nic strasznego do tej pory się z tego powodu nie wydarzyło.

Tak czy inaczej najwyższy czas zmienić ten nawyk. W przeciwnym wypadku, nawet nie zdając sobie z tego nieraz sprawy narażasz się na wymierne straty. Bo klient nie znalazł produktu z powodu nieaktualnych reindexów, bo Twój sklep traci na pozycjonowaniu w Google z powodu nieaktualnej mapy strony lub na przykład widoczne ceny w sklepie nie zawsze są aktualne. 5 minut Twojego cennego czasu i masz to wszystko z głowy na zawsze.

 

Jak skonfigurować i uruchomić Cron na serwerze ? (UNIX/BSD/linux)

W systemach uniksowych poświęcona jest temu specjalna usługa zwana Crontab.

Zadania dodawane są w niej do specjalnej listy, którą możesz wywołać do edycji poleceniem:

crontab -e

Polecenie otworzy edytor, aby dodać listę Magento należy dopisać do listy kolejną linijkę według formatu:

* * * * * polecenie systemowe
| | | | |
| | | | ----- Dzień tygodnia (0 - 7) (Niedziela = 0 lub 7)
| | | ------- Miesiąc (1 - 12)
| | --------- Dzień miesiąca (1 - 31)
| ----------- Godzina (0 - 23)
------------- Minuta (0 - 59)

Konfiguracja Cron dla Magento

Aby zaplanować wywoływanie Cron Magento co każde 10 minut, edytując Crontab wprowadzamy w nowej linii:

10 * * * * php -f /var/www/twojsklep.pl/cron.php

Czy to znaczy, że wszystkie zadania w Magento będą uruchamiane co 10 minut ? Nie, zadania będą uruchamiane zgodnie z konfiguracją modułów sklepu. Uruchamiany co 10 minut skrypt będzie jedynie sprawdzał, czy należy uruchomić kolejne.

Sprawdzanie konfiguracji w działaniu

Ostanią rzeczą, o której zapewne myślisz, to czy wszystko faktycznie działa. Trochę niezręcznie by było czekać i obserwować zachowanie Magento, czy zadania w ustawionych odstępach czasu są na pewno uruchamiane.

Jest dosyć szybka metoda, aby zobaczyć czy ustawiony skrypt na pewno będzie wykonywany. Dodaj w usłudze kolejne zadanie:

MAILTO=nazwa@twojsklep.pl
5 * * * * wget -q http://www.twojsklep.pl/cron-nie-istnieje.php

Polecenie MAILTO wysyła wynik działania skryptu na wskazany adres email. Ustawiając adres pliku cron.php na błędny powinieneś otrzymywać co 5 min informację emailem o problemie z uruchomieniem Twojego skryptu. Jeśli otrzymałeś te maile, możesz być wtedy pewny, że wszystko poszło zgodnie z planem i po ustawieniu adresu na poprawny skrypt będzie faktycznie uruchamiany w zadanym odstępie czasu.

Inne metody

Jeśli nie masz dostępu do usługi Crontab, możesz wywołać Cron ręcznie przechodząc w przeglądarce pod adres Twojego sklepu: http://twojsklep.pl/cron.php)

Aby uruchamiać go automatycznie możesz zaplanować zadanie na swoim komputerze polegające na systematycznym uruchamianiu tego adresu.

Dostępne są także usługi Cron w różnych portalach, które znajdziesz w internecie. Dużo z nich jest darmowych, niektóre z nich posiadają ograniczenia na częstotliwość uruchamiania skryptu. Wpisz w Google słowa "cron online", a znajdziesz wiele tego typu serwisów. Jednym z sprawdzonych jest np. http://www.onlinecronjobs.com

Wróć

Zobacz również