Като изключим, това което съм написал в readmeто, оказа се че с предходния скипт съм дръпнал само 100 уникални проекта, тоест онзи json файл, към който бях дал линк е невалиден.
Дърпането на списъка с проекти е бавно, тъй като се изпълнява последователно. Възможно е и да има начин да се оптимизира, но не ми се дълбаеше в тази посока. В момента в този dump съдържа 11465 уникални проекта (в момента на сайта показва 11495, нямам идея къде се губят 30)
При изпълнението на втората стъпка стигнах до
Project 73950
FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory
което ме изуми, тъй като не пазя нищо в паметта. По всяка вероятност или моят код, или някой от модулите има memory leak
SELECT count(*) FROM `eu-tenders`.Projects where isun is not null;
6859 проекта с пълна информация (поне тази, която скрейпвам)
Това което обмислям да добавя е възможност за подаване на id от което да започне втората стъпка на скрейпъра, тоест при положение че имам всички проекти в dumpа мога да си спестя пускането на стъпка1 да стартирам директно стъпка2
node app.js --project # with some more params
за
SELECT count(*) FROM `eu-tenders`.Projects where id > 73950;
останалите 4584 проекта, тоест мога да си спестя 2 часа чакане. Всички промени по базата са findOrUpdate така че информация веднъж влязла в базата не се губи.
В общи линии е това за сега, може да пропускам нещо. Ще добавя някои неща през времето, естествено съм отворен към предложения
:wave:
Този PR се отнася за https://github.com/obshtestvo/sledi-parlamenta/issues/41
Като изключим, това което съм написал в readmeто, оказа се че с предходния скипт съм дръпнал само 100 уникални проекта, тоест онзи json файл, към който бях дал линк е невалиден.
Дърпането на списъка с проекти е бавно, тъй като се изпълнява последователно. Възможно е и да има начин да се оптимизира, но не ми се дълбаеше в тази посока. В момента в този dump съдържа 11465 уникални проекта (в момента на сайта показва 11495, нямам идея къде се губят 30)
При изпълнението на втората стъпка стигнах до
което ме изуми, тъй като не пазя нищо в паметта. По всяка вероятност или моят код, или някой от модулите има memory leak
Тоест в dumpа имам
6859 проекта с пълна информация (поне тази, която скрейпвам)
Това което обмислям да добавя е възможност за подаване на id от което да започне втората стъпка на скрейпъра, тоест при положение че имам всички проекти в dumpа мога да си спестя пускането на стъпка1 да стартирам директно стъпка2
за
останалите 4584 проекта, тоест мога да си спестя 2 часа чакане. Всички промени по базата са findOrUpdate така че информация веднъж влязла в базата не се губи.
В общи линии е това за сега, може да пропускам нещо. Ще добавя някои неща през времето, естествено съм отворен към предложения
:beers: