http запросы, ограничивая количество одновременных запросов с помощью Semaphore.
Я правильно понимаю, что всегда параллельно будет запущено именно то количество, которое указано в аргументе Semaphore?
semaphore = asyncio.Semaphore(num_chunks)
https://github.com/mynameisfiber/high_performance_python_2e/blob/master/08_concurrency/cralwer/asyncio/crawler.py
Нет. Это максимальное количество.
Тишка правильно ответил. Вспомнил мем, когда мне сказали реализовать такое же говно, а потом добавили требование: "ЧТОБЫ ВСЕГДА МАКСИМАЛЬНОЕ КОЛИЧЕСТВО ЗАПРОСОВ БЫЛО". Я ответил, что если реализовано норм, то в этом случае будет максимальное доступное количество)) В итоге отказали, мем
Хз что хотел автор вообще
Тогда вопрос, почему у авторов в книге такой красивый график - лесенкой. Видно, что когда n-й запрос отправлен, а 1й завершился - генерится n + 1 запрос.
типо нагружать АПИшку сервиса по максам, не выходя за пределы допустимого. Ну создайте миллиард задач и запустите их, вот будут максималки
Ага. Но он не стал запускать сразу n и не прибил оставшиеся n-1 когда энный с конца завершился
график с подвохом, все знают что в асинхроне мы дожидаемся окончания самой жирной задачи
Так а что тогда дает Семафор?
Механическое средство сигнализации для подвижного состава на железных дорогах.
Так, а что даёт Lock?
Вот мой код. https://pastebin.com/D4ajDbbT Каждый таск - это запуск curl из под разных АйПи адресов. Я указываю Семафор(1000) и ожидаю одномоментно видеть 1000 запросов curl в процессах. А получается от силы 20. Бывает проскакивает около 1000, но редко.
Давай сделаем мысленный эксперимент. Ты сделал семафор на миллиард. А дальше запустил один таск. Сколько будет тасков?
Нене. Семафор(1000) а всего тасков 500к.
Интересно вы на вопросы отвечаете
Вот таски и туда семафор аргументом передается
1 таск и будет
Нет, это неправда
Отлично. А если два запустить?
Хорошо, а если запускать по одной задаче раз в час в течение суток?
Нет :)
24 - если запускать по крону)
Нет, ты упускаешь что таски могут завершаться
Продолжаем эксперимент. Так же запускаем таски раз в час в течение суток, но теперь семафор на 12. Сколько будет тасок?
Обсуждают сегодня