Как отправить 500 запросов на сайт в секунду python

У меня есть сайт с которого я бы хотел получить ошибку 404 если страница не существует и код ответа 200, если страница на сайте существует, я использовал асинхронный код для отправки get запросов на сайт, использовал c aiohttp ClientSession, однако заметил, что 500 запросов отправляются в течении 2х-3х секунд, есть ли возможность отправлять 500 запросов в секунду? Так чтобы к примеру в списке уже были указаны ссылки и написав какой-то код, все 500 запросов отправлялись сразу, возможно с какой-то микрозадержкой, но все 500 запросов по идее также должны выполниться одновременно.

Могли бы посоветовать что-то? Или написать пример того, как это лучше сделать и что использовать?

Имеющийся у меня код:

from asyncio import gather, create_task, run, sleep
from fake_useragent import UserAgent
from aiohttp import ClientSession
from time import sleep as ssleep
from datetime import datetime

global success_number
success_number = 0

headers = {}
headers["accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
headers["cookie"] = "_ga=GA1.2.911762608.1640089286; _gid=GA1.2.1225094414.1640089286; __oagr=true"
headers["sec-ch-ua"] = '" Not A;Brand";v="99", "Chromium";v="96", "Microsoft Edge";v="96"'
headers["sec-ch-ua-mobile"] = "?0"
headers["sec-ch-ua-platform"] = "Windows"
headers["sec-fetch-dest"] = "document"
headers["sec-fetch-mode"] = "navigate"
headers["sec-fetch-site"] = "none"
headers["sec-fetch-user"] = "?1"
headers["upgrade-insecure-requests"] = "1"
headers["user-agent"] = UserAgent().random


async def get_user_info(url, unique_id):
    global success_number
    async with ClientSession() as session:
        async with session.get(url, headers=headers) as response:
            date_time = datetime.now().strftime('%d.%m.%Y | %H:%M:%S')
            if response.status == 200:
                success_number += 1
            print(str(date_time) + ' | ' + str(response.status) + ' ID: ' +str(unique_id) + ' SUCCESS: ' +str(success_number))
    
    
async def runner():
    min_id = 0
    max_id = 10000
    tasks = []
    chunk = 500
    pended = 0
    for current_id in range(max_id):
        unique_id = min_id + current_id
        url = f'https://lardi-trans.ua/user/{unique_id}/'
        tasks.append(create_task(get_user_info(url, unique_id)))
        if len(tasks) == chunk or pended == max_id:
            await gather(*tasks)
            tasks = []

            
        
if __name__ == '__main__':
    run(runner())

Ответы (1 шт):

Автор решения: finally

самый простой пример, который должен решить проблему:

import requests

from threading import Thread


def send_request(...):
    ...


thread_pool = [
    Thread(target=send_request, args=[]) for _ in range(500)
]

for thread in thread_pool:
    thread.start()
→ Ссылка