170 похожих чатов

Всем привет. Читаю эту книгу. Есть вопрос к сообществу. В коде отправляют асинхронные

http запросы, ограничивая количество одновременных запросов с помощью Semaphore.

Я правильно понимаю, что всегда параллельно будет запущено именно то количество, которое указано в аргументе Semaphore?

semaphore = asyncio.Semaphore(num_chunks)

https://github.com/mynameisfiber/high_performance_python_2e/blob/master/08_concurrency/cralwer/asyncio/crawler.py

27 ответов

17 просмотров

Нет. Это максимальное количество.

Тишка правильно ответил. Вспомнил мем, когда мне сказали реализовать такое же говно, а потом добавили требование: "ЧТОБЫ ВСЕГДА МАКСИМАЛЬНОЕ КОЛИЧЕСТВО ЗАПРОСОВ БЫЛО". Я ответил, что если реализовано норм, то в этом случае будет максимальное доступное количество)) В итоге отказали, мем

Andrey-Nepshekuev Автор вопроса
Tishka17
Нет. Это максимальное количество.

Тогда вопрос, почему у авторов в книге такой красивый график - лесенкой. Видно, что когда n-й запрос отправлен, а 1й завершился - генерится n + 1 запрос.

Tishka17
Хз что хотел автор вообще

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

Andrey Nepshekuev
screenshot Тогда вопрос, почему у авторов в книге такой краси...

Ага. Но он не стал запускать сразу n и не прибил оставшиеся n-1 когда энный с конца завершился

Andrey Nepshekuev
screenshot Тогда вопрос, почему у авторов в книге такой краси...

график с подвохом, все знают что в асинхроне мы дожидаемся окончания самой жирной задачи

Andrey-Nepshekuev Автор вопроса
Andrey Nepshekuev
Так а что тогда дает Семафор?

Механическое средство сигнализации для подвижного состава на железных дорогах.

Andrey-Nepshekuev Автор вопроса
Ivan K.
график с подвохом, все знают что в асинхроне мы до...

Вот мой код. https://pastebin.com/D4ajDbbT Каждый таск - это запуск curl из под разных АйПи адресов. Я указываю Семафор(1000) и ожидаю одномоментно видеть 1000 запросов curl в процессах. А получается от силы 20. Бывает проскакивает около 1000, но редко.

Andrey Nepshekuev
Вот мой код. https://pastebin.com/D4ajDbbT Кажды...

Давай сделаем мысленный эксперимент. Ты сделал семафор на миллиард. А дальше запустил один таск. Сколько будет тасков?

Andrey-Nepshekuev Автор вопроса
Andrey Nepshekuev
Нене. Семафор(1000) а всего тасков 500к.

Интересно вы на вопросы отвечаете

Andrey-Nepshekuev Автор вопроса
Tishka17
Давай сделаем мысленный эксперимент. Ты сделал сем...

Вот таски и туда семафор аргументом передается

Andrey Nepshekuev
1 таск и будет

Отлично. А если два запустить?

Andrey Nepshekuev
2 таска

Хорошо, а если запускать по одной задаче раз в час в течение суток?

Andrey-Nepshekuev Автор вопроса
Andrey Nepshekuev
24 - если запускать по крону)

Нет, ты упускаешь что таски могут завершаться

Andrey Nepshekuev
24 - если запускать по крону)

Продолжаем эксперимент. Так же запускаем таски раз в час в течение суток, но теперь семафор на 12. Сколько будет тасок?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта