Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z CRON, Cron przerywa przed ukończeniem wszystkich zadań.
Damian4000
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 4.04.2017

Ostrzeżenie: (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 opdowiedź.
Go to the top of the page
+Quote Post
ohm
post
Post #2





Grupa: Zarejestrowani
Postów: 623
Pomógł: 144
Dołączył: 22.12.2010

Ostrzeżenie: (0%)
-----


Można, wystarczy dobry system kolejkowy opracować smile.gif
Go to the top of the page
+Quote Post
lukaskolista
post
Post #3





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

Ostrzeżenie: (0%)
-----


A
  1. <?php
?
Go to the top of the page
+Quote Post
Damian4000
post
Post #4





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 4.04.2017

Ostrzeżenie: (0%)
-----


Dzięki za odpowiedzi ;-)

set_time_limit nie pomógł z tego względu, że hosting kei ma ograniczenia i tylko oni mogą je zmieniać.

Co do zastosowania kolejki to już mam zadania rozbite na 15 plików i wciąż brakuje.

Na innym forum otrzymałem podpowiedź aby skorzystać z VPS. W ovh podobno nie ma limitu i tam przenieść pliki crona, aby nie przenosić całej strony.
Tutaj koszty są do zaakceptowania. Jakieś 12 zł netto miesięcznie. Pytanie czy nie ma lepszego rozwiązania? Co sądzicie?
Go to the top of the page
+Quote Post
adbacz
post
Post #5





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Zrób to na dwa razy:

1. Załaduj plik XML - ładowanie pliku nie zajmie dużo, PHP ładnie z tym działa - i podziel go na paczki po 10, 100, 500 rekordów do osobnych plików XML. nastepny raz zrobi to, gdy nie będzie juz żadnych plików podzielonych.
2. Zapodaj CRONa który będzie sprawdzał czy są te małe paczki w katalogu. Pobierze pierwszy plik, zapisze jego dane do DB i go usunie i tak dopóki katalog będzie pusty.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 08:49