Jaka mam podzielić sobie taką pracę?
1. Pobieram dane używam GuzzleHttp\Client tylko produkty są podzielone na części (za każdym razem pobieram jakąś cześć ) i teraz jak mam to zaplanować w kodzie. pobieranie dużej ilości danych może trwać wieki, moge tu puścić pętle i pobrać jednocześnie ale to bedzie trwało wieki i może obciążyć serwer. Jak to podzielić? Jeżeli użyje corna i co minutę będę pobierał cześć produktów i wrzucał je do bazy od razu to może sie zdarzyć tak, że nastąpi aktualizacja i nie pobiorę wszystkiego bo na 1 stronie pojawią się już inne artykuły kiedy będę pobierał coś ze strony X i Y. Może zamiast pobierać i wrzucać wszystko do bazy to zapisać dane gdzie na dysku i potem zająć się ich obrabianiem?
2. Powiedzmy, że pobrałem dane i mam zapisane je lokalnie. zaczynam wrzucać produkty do bazy używając Symfony\Component\Serializer\Serializer mogę zamieć dane z json na mój object. z danymi tymi które mogę w prosty sposób zamienić nie ma problemu (title, desc itd) ale co z np polami które przetrzymują relacje w bd. np. kategorie? które mam zapisane w takiej postaci "Clothing & Accessories > Clothing > Outerwear > Coats & Jackets". przy każdym tworzeniu obiektu musiałbym w jakiś sposób znaleźć tą kategorie potem stworzyć obiekt na podstawie ID i ustawić go w produkcie. Ale gdy mam 1000 produktów z danej kategorii to trochę bez sensu dla każdego produktu szukać to oddzielnie. Więc może zostawić sobie to na później i zrobić kolejny skrypt który wyszuka artykuły bez mojej kategorii pobierze unikalne kategorie do odszukania i potem hurtowo ustawi moje kategorie?
3. jak najszybciej sprawdzić czy dane artykuły są już w bazie, aby nie pobierać tych danych jeszcze raz? mogę za każdym razem odwołać się do bazy danych i sprawdzić czy dane produkt jest w bazie (przechowuje zewnętrzne id i do tego nazwę sklepu) ale to przed dodaniem dla każdego produktu robienie czegoś takiego to chyba nie tędy droga

Wiele bardziej doświadczonych osób pewnie robiło to setki razy i może powiedzieć jak sobie coś takiego zaplanować
