Size: a a a

Laravel для начинающих

2021 February 04

EG

Egor Gruzdev in Laravel для начинающих
YourPersonalGradeOfHeroin
Бд умеет брать много индексов
не всегда эфективно индексы мержатся
источник

EG

Egor Gruzdev in Laravel для начинающих
Tim
А если хранить эту табличку в редисе?
А сколько записей в CarVariant таблице?
источник

L

Ludoman in Laravel для начинающих
Tim
Парни, дайте экспертное мнение
У меня задача - поставить 4млн джобов на парс
Есть 14000 вариантов машин и 278 вариантов запчастей

Я делаю джоб, который генерит эти джобы на парс

Внутри этого джоба есть обращение к бд, чтоб определить ID конкретного сочетания - год + марка + машина и эта хрень оч сильно тормозит скрипт, как бы вы поступили?
На мой взгляд вариантов не так много, можно просто в памяти хранить таблицу
источник

T

Tim in Laravel для начинающих
Egor Gruzdev
А сколько записей в CarVariant таблице?
14000
источник

Y

YourPersonalGradeOfH... in Laravel для начинающих
Egor Gruzdev
не всегда эфективно индексы мержатся
Ну постгрес тот же нормально берёт
источник

T

Tim in Laravel для начинающих
Ludoman
На мой взгляд вариантов не так много, можно просто в памяти хранить таблицу
Вот тож об этом подумал
источник

EG

Egor Gruzdev in Laravel для начинающих
Tim
14000
до 100к по индексам пожно и не дергаться, но лучше поставить
источник

T

Tim in Laravel для начинающих
Egor Gruzdev
до 100к по индексам пожно и не дергаться, но лучше поставить
уже стоят
источник

EG

Egor Gruzdev in Laravel для начинающих
а если делать асинхронные запросы, т.е.
на 14000 вариантов запускаем Jobs (т.е. 14000 jobs), а в Jobs делаем пулами по 50-100 асинхронных (Guzzle или др. клиент) запросов вариантов запчастей, но мне кажется ebay заболит такого клиента.
источник

T

Tim in Laravel для начинающих
Egor Gruzdev
а если делать асинхронные запросы, т.е.
на 14000 вариантов запускаем Jobs (т.е. 14000 jobs), а в Jobs делаем пулами по 50-100 асинхронных (Guzzle или др. клиент) запросов вариантов запчастей, но мне кажется ebay заболит такого клиента.
ошибаешься
источник

T

Tim in Laravel для начинающих
Egor Gruzdev
а если делать асинхронные запросы, т.е.
на 14000 вариантов запускаем Jobs (т.е. 14000 jobs), а в Jobs делаем пулами по 50-100 асинхронных (Guzzle или др. клиент) запросов вариантов запчастей, но мне кажется ebay заболит такого клиента.
я паршу ебей в 500 потоков с одной прокси, все ок
источник

T

Tim in Laravel для начинающих
Egor Gruzdev
а если делать асинхронные запросы, т.е.
на 14000 вариантов запускаем Jobs (т.е. 14000 jobs), а в Jobs делаем пулами по 50-100 асинхронных (Guzzle или др. клиент) запросов вариантов запчастей, но мне кажется ebay заболит такого клиента.
и там не 14000 джобсов у меня, а 4млн
источник

T

Tim in Laravel для начинающих
ибо у каждой varVariant есть 278 запчастей)
источник

T

Tim in Laravel для начинающих
причем что интересно, у них есть апи и оно ограничено 5000 запросов в сутки :D
источник

EG

Egor Gruzdev in Laravel для начинающих
Tim
и там не 14000 джобсов у меня, а 4млн
правильно 14000 x 278 = 4кк

а если запустить 14000 jobs на все модели, а в них сделать параллельные запросы на поиск запчастей и jobs меньше и нагрузка по памяти, да и мне кажется отработает даже быстрее.
источник

T

Tim in Laravel для начинающих
Egor Gruzdev
правильно 14000 x 278 = 4кк

а если запустить 14000 jobs на все модели, а в них сделать параллельные запросы на поиск запчастей и jobs меньше и нагрузка по памяти, да и мне кажется отработает даже быстрее.
так то же самое получится 4 млн запросов, какая разница?
источник

EG

Egor Gruzdev in Laravel для начинающих
Egor Gruzdev
правильно 14000 x 278 = 4кк

а если запустить 14000 jobs на все модели, а в них сделать параллельные запросы на поиск запчастей и jobs меньше и нагрузка по памяти, да и мне кажется отработает даже быстрее.
или например из Jobs по моделям пулять, Jobs на поиск запчастей
источник

EG

Egor Gruzdev in Laravel для начинающих
Tim
так то же самое получится 4 млн запросов, какая разница?
но Jobs не 4кк и памяти не 80gb как ты как-то писал
источник

T

Tim in Laravel для начинающих
Egor Gruzdev
или например из Jobs по моделям пулять, Jobs на поиск запчастей
а я понял о чем ты, но мне не нравится в таком подходе, что одновременно и джобы генерятся на парс и сам парс идет, хрен поймешь все ли правильно сработало, у меня на этапе подготовки джобов на парс был глюк - он то 4 млн генерил то 4,1 то 3,9 например и терь у меня параноя
источник

T

Tim in Laravel для начинающих
а насчет 60гб памяти я уже понял, в чем ошибка и поправил )
источник