2013-04-12 13 views
6

Zrobiłem moduł magento, który eksportuje produkt do pliku csv. Teraz chcę uruchomić cronjob codziennie o 23.55. Ustawiłem plik config.xml tak, jak jest zapisany w magento cronjob wiki.Magento cron job and cron_scheduler table

Mój kod:

<crontab> 
     <jobs> 
      <gcompany_runprofilescronjob> 
       <schedule> 
        <cron_expr>55 23 * * *</cron_expr> 
       </schedule> 
       <run> 
        <model>export/export_csv::runprofilescronjob</model> 
       </run> 
      </gcompany_runprofilescronjob> 
     </jobs> 
    </crontab> 

ja również ustawić cron na serwerze. Kiedy uruchamiane cronjob, wszystkie cronjobs w magento są przechowywane w tabeli bazy danych cron_schedule, ale nie moje gcompany_runprofilescronjob. Jeżeli ustawić inny przedział na przykład:

<cron_expr>*/1 * * * *</cron_expr> 

Moje zadanie crona jest napisane w bazie danych, ale w wykonać każdą minutą czego nie chcę ... Chcę, aby moja funkcja jest wykonywana codziennie o 23.55. Jakieś sugestie co robię źle?

+0

Być może masz większe szanse na uzyskanie pomocy na http://magento.stackexchange.com/ –

Odpowiedz

4

Moim pierwszym krokiem byłoby zainstalowanie Fabrizio Branca w wersji AOE Scheduler extension. Rozszerzenie Fabrizio ma funkcję "Widok listy", która pokaże wszystkie zadania Crona aktualnie zarejestrowane w cronie Magento i kiedy są zaplanowane do uruchomienia. Umożliwia także natychmiastowe uruchomienie zadania cron w przeglądarce (idealne do debugowania zadań cron) lub zaplanowanie zadania do natychmiastowego wykonania.

Jeśli Twoje zadanie cron nie pojawia się w widoku listy AOE Scheduler, pojawia się problem z konfiguracją zadania cron. Spróbuj wyczyścić pamięć podręczną konfiguracji, aby upewnić się, że Magento przeanalizuje plik config.xml w poszukiwaniu najnowszych zmian. Zakładam, że twój węzeł XML znajduje się w odpowiednim miejscu w hierarchii dokumentu XML, tj. Bezpośrednio pod węzłem <config>?

Jeśli zadanie cron pojawia się w widoku listy i nadal nie działa, użyj funkcji "Wygeneruj harmonogram", aby zregenerować tabele harmonogramów cron. Spróbuj także ręcznie uruchomić zadanie cron, używając funkcji "Uruchom teraz" AOE Scheduler, aby sprawdzić błędy lub wyjątki.

+3

Nie musisz instalować całego modułu. Możesz skopiować skrypt powłoki/scheduler.php do folderu powłoki twojej instalacji. Następnie uruchom to w linii poleceń, a otrzymasz całą funkcjonalność. – SPRBRN

7

Mimo że jest to bardzo stare pytanie, nie ma poprawnej odpowiedzi, więc zostawię to tutaj dla następnego faceta.

Tabela Magento cron_schedule jest wypełniona tylko zadaniami cron, których uruchomienie zaplanowano na w niedalekiej przyszłości. Powodem, dla którego nie widzisz swojej pracy cron w tabeli, jest to, że działa tylko raz dziennie, dokładnie o 23:55. Magento doda to zadanie cron do tabeli cron_schedule około 23:45, w zależności od konfiguracji zadania cron serwera i ustawień zadania cron Magento w System > Configuration > System > Cron. Zwróć uwagę na ustawienia Generate Schedules Every i Schedule Ahead for, które określają, jak często Magento generuje harmonogram.