Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Import danych XML + CRON + WebApi + CURL = timeout :(
stankiewiczpl
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 25.01.2011

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


Witam.
Mam prośbę o pomoc w znalezieniu dobrej drogi do rozwiązania problemu.
Fakty.
1.Hosting nazwa.pl
2.Sklep internetowy z WebAPI
3.Dane z hurtowni w formacie XML ,też po api ,do zaimportowania cztery razy na dobę.

Problematyka.
Plik z danymi waży na dzień dzisiejszy niespełna 6mb i muszę importowac dane o produktach cztery razy na dobę.Problem w tym ,że nazwa.pl ogranicza czas wykonywania skryptu wywołanego przez Crona do 3 minut.
Drugi problem jest taki ,że każdy rekord w XML muszę zweryfikować i odpytać sklep czy taki produkt istnieje ,w zależności od odpowiedzi importowane są różne dane.To akurat odbywa się przez WebApi i CURL .
Niestety nie mam zbyt dużego skilla w programowaniu WebServices a tym bardziej w posługiwaniu się CURL'em.

Jak długo mogę utrzymać sesję?Czy dla każdego rekordu musze się logować do WebAPi ,czy mogę raz otworzyć połączenie i nie zamykać go aż do całkowitego wykonania pętli(ponad 2000 rekordów i mowa oczywiście o CURL'u).

Może ma ktoś pomysł jak porcjować dane aby uniknąć timeoutu serwera.
Mile widziane są też pomysły po stronie przegląrki.
PS.Wcześniejsze moje rozwiązanie oprałem na czystym PDO ale i to nie pomogło w wyscigu z czasem.


Go to the top of the page
+Quote Post
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Może rozbij to na etapy:
1. Wrzucenie zawartości XML do pomocniczej tabeli. Każdy rekord miałby kolumnę "sprawdzone" o wartościach 0/1.
2. Kolejnymi CRONami odpytuj tą tabelę pobierając porcję rekordów sprawdzone=0, sprawdzaj, rób co tam masz robić, aktualizuj wartość kolumny na 1. Możesz też pominąć wykorzystanie tej kolumny, a po wykonaniu operacji na rekordzie po prostu usuwać go z bazy.
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: 22.08.2025 - 02:50