Problem ze zbyt krótkim czasem CRON.

0

Witam wszystkich forumowiczów ;-)

Mam do was ogromną prośbę. Chciałbym abyście pomogli mi w rozwiązaniu problemu, na jaki trafiłem. Zasugerowali jakieś rozwiązanie, bo z pewnością istnieje ;-)

Problem dotyczy zadań cron. Generalnie importuje on dane z pliku xml do bazy danych.
Wszystko działa jak powinno, natomiast pojawił się problem, gdy przyszło mu zaimportować duże pliki. Przestał on pracować, mimo że nie skończył zadania.

Próbowałem użyć ini_set('max_execution_time', 0); i pisałem nawet do pomocy hostingu. Otrzymałem odpowiedź, że domyślny wynosi limit max_execution_time = 30.
I wygląda, że jest zbyt krótki.

Szukam więc rozwiązania na obejście tego problemu.
Teoretycznie jednym z pomysłów jest serwer dedykowany, ale są to spore koszty jak na początek, brać serwer dedykowany tylko z tego powodu to chyba przesada.

Może to głupie pytanie, ale nie można napisać jakiegoś skryptu, który będzie uruchamiany przez cron ale będzie działał w tle do zakończenia całej pracy?

Z góry dziękuję za odpowiedź

0

Serwer dedykowany to duże koszty? VPS w OVH, tak na początek, to jakieś 16 zł miesięcznie, a możesz sobie robić co tylko chcesz.

W innym wypadku musiałbyś przetwarzać dane w paczkach, tak aby mieścić się w limicie.

Generalnie: kup sobie VPSa :P

0

Rozumiem, że taki vps w ovh rozwiąże problem z limitami? Można w nim dokonywać zmian jak na serwerze dedykowanym?
Jeszcze nie miałem z nimi styczności.

Może teraz zadam dziwne pytanie ale co mi tam ;-) Czy wystarczyłoby gdybym na tym VPS ustawił limit max_execution_time na dość wysoki i wywoływał z niego tylko crona będzie to działało? Nie chcę przenosić całej strony tylko dla zadań cron. Ale nie wiem czy limit max_execution_time dotyczy tylko crona, czy skrypt na moim serwerze (kei) również przestanie działać przez jakąś blokadę KEI.

0

Limit musi być zdjęty na serwerze, na którym dany skrypt jest uruchamiany, czyli będziesz musiał całą stronę przenieść (a przynajmniej całe skrypty cronowe).

Tak, na VPSie można robić niemal wszystko to samo, co na serwerze dedykowanym.

0

Dzięki,
W takim razie jeszcze sprawdzę na linuxpl bo tam limit max_execution_time można ustawić na 450 sekund.
Przy okazji sprawdzę wywoływanie skryptów, bo całej strony nie chcę przenosić (zbyt dużo zachodu).

Docelowo pewnie skuszę się na VPS w ovh. Znasz może jeszcze jakieś inne miejscówki gdzie ustawię max_execution_time na 0??

Jeszcze raz dzięki za pomoc.

0

Przede wszystkim uciekaj od tego hosting providera. Miałem ten sam problem na nazwa.pl ale tam o ile limit na http wynosił 30s to na cronach już był 3'. Stworzyłem sobie swego rodzaju workflow które w poszczególnych krokach wykonuje swoje zadania i aktualizuje status. Skrypt napisany jest tak aby w jednej sesji (każdej nocy przez 4h co 10') wykonał tylko raz całe workflow.

Czasami zdarza się, że 3/4 ostatnie uruchomienia nie robią nic ale cóż, problem rozwiązany.

1 użytkowników online, w tym zalogowanych: 0, gości: 1