Closed mariehaskovcova closed 2 years ago
Problém v Harvest.pair_custom_seeds()
, každá URL se samostatně vyhledává v databázi, při 1000 URL teda jde 1000 dotazů do databáze – a to ještě jestli kterékoliv semínko obsahuje danou URL.
Pokusím se to trochu zoptimalizovat, nejsem si jistý jak to bude pracovat s tím "contains" místo "equals". Případně by to asi šlo udělat podobně jako zmražení semínek, tedy přes signál.
@mariehaskovcova rychlé otázky na to párování:
Tak jak to bylo doteď je extrémně pomalé u většího množství semínek a popravdě nevím, jestli je to úplně užitečné. Nyní se semínko spáruje s existujícím zdroje, pokud URL zdroje obsahuje semínko, tedy např. ten příklad nahoře. Hlavně to ale znamená, že do sklizně/tématické kolekce se nakonec dostane to "http://google.com/abc", i když původní URL byla vlastně jiná.
Zdaleka nejrychlejší optimalizace co mě zatím napadla (z 3 minut na ~1-2 sekundy) by jednoduše spárovala zdroje, které obsahují identické URL jako custom semínko, tedy by se informace nijak nezměnily/neztratily a nemuselo by se čekat. Samozřejmě to ale může znamenat, že když třeba zdroj bude mít správné url a custom semínko bude mít na konci "#", tak se nespárují, proto ta otázka "vadí to vlastně?" Pro kontext ten příklad s 6674 custom semínky nespáruje ani jedno, protože jsou všechna konkrétnější než existující zdroje.
při vkládání velkého množství semínek do záznamu sklizně (mimosystémová semínka) háže 504 Gateway Time-out, kalendář pak vypadá prázdný, nakonec se záznam vytvoří
https://app.webarchiv.cz/seeder/harvests/140/detail