Autor Zpráva
Tomac1
Profil *
Dobrý den všem,

řeším problém se stahováním obrázků z jednoho serveru na druhý (mezi eshopy). Jde o to, že majitel spravuje zboží z jednoho webu a na druhý je potřeba každý den přenést celou databázi včetně obrázků.
Jenom exportovaný soubor XML má 8MB. S tím, ale problém není. Texty jednoduše stáhnu pomocí curl do souboru na server a ten si pak naimportuji do db. Web sídli na hosting90 a je tam execution time 30 sec.
A tady je kámen úrazu, i když přenos mezi servery není vůbec pomalý, tak obrázky pomocí curl za tu dobu nestáhnu.

Neřešil někdo podobný problém?

Podpora mi samozřejmě nevyhověla s prodloužením limitu a vlastně ani neporadila jak toto řešit.

Samozřejmě mě napadlo uložit k produktům do databáze i url obrázků a vše řešit jiným cronem spouštěným později.
I tak se to, ale na jeden zátah nepovede.

Musím to rozdělit do dávek a nevím jak toto technicky provést, aby se vždy po ukončení znovu načetl soubor curl pro další dávku.
Mám totiž problém, že když budu curl soubor načítat dokola, tak mi ho server stejně utípne třeba po pěti dávkách.
¨

Nějaké nápady?





Potřeboval bych vědět zda-li
xmark
Profil
Přenášíš všechny obrázky? Přenášej jen nově přidané. Je to pořád moc? Podle něčeho si to rozfázuj, třeba podle abecedy.
A to xml bych se nejspíš pokusil zazipovat.
king26
Profil
Pokud máš na hostingu povoleno exec(), dal by se cron rozfázovat na několik větví.

viz příspěvek v jiném tématu
Tomac1
Profil *
Děkuju za odpovědi.
exec() je také vypnutý, nicméně oba příspěvky mi napověděli.

Vídím to tak, že zkusím nastavit třeba 10 cron souborů cron_img.php?davka=1, cron_img.php?davka=2, atd...
Do cron_img.php akorát uložím informaci o počtu těchto cron souborů, tedy počtu dávek a on už si při každém takovém volání zjistí startovní a koncovou pozici (limit) jeho dávky.

S tím jak budou přibývat záznamy se budou dávky zvětšovat, pokud mi pošle cron chybu, že už je velikost dávky velká přidám další volání cronu. Nevím nakolik je toto řešení sofistikované. Asi moc ne, ale něco mi říká, že by tohle mohlo fungovat.

Pro jistotu tam dám třeba 20 spuštění v podobný čas. Snad si to server přelouská.
Navíc by to snad mohlo zkousnout i vytváření dvou náhledů ;-)

Nějaké tipy na vylepšení?
xmark
Profil
Tomac1:
No já jsem nějak těch tvých 10 cron souborů nepochopil. Používal bych 1 cron soubor, po jeho provedení bych si uložil "pozici", ať už to bude cokoliv a při dalším startu začal od pozice + 1.
Až všechno projedeš, shodíš to do nuly a hlídáš, jestli není další den. Až je nový den, jedeš nanovo.
Snad to píšu srozumitelně.
Tomac1
Profil *
Ano přesně tak jsem to myslel. Vyznělo to blbě. Vlastně jsem chtěl říct, že vytvořím 10 volání jednoho cron souboru pokaždé s jinou start pozicí ;-)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0