Asenkron istek atarken script yanıt vermiyor

Merhaba. Asenkron bir web scraper yazıyorum. Aynı anda 300+ url’e istek atmam gerekiyor (zaman zaman 1000 olabiliyor). 200den fazla url’e istek attığımda scriptten hiçbir şekilde yanıt alamıyorum. hata da vermiyor. burada eventloop tek bir threadde çalıştığından belki memory şişiyordur diye düşündüm ve urlleri azalttım. denemek için 100’e sabitledim ve o şekilde yanıt alabildim ama bu sefer de kalan url’lere gidemiyorum. bu sorunu da çözmek için istekleri 100er 100er ya da 50şer 50şer atmayı denedim. ilk 50 url’e istek atıp response’u parse edebiliyorum sıradaki 50 için istek attığımda yine scriptten hiçbir şekilde yanıt alamıyorum. dediğim gibi yine hata vermiyor.
kodun bir kısmını aşağıda paylaşıyorum.

def concurrent_list(self, length) -> list:
    request_counts = []
    for i in range(1, length):
        if i % 50 == 0:
            request_counts.append(self.MAX_CONCURRENT_REQUEST)
    request_counts.append(length % self.MAX_CONCURRENT_REQUEST)
    return request_counts

def _offers_task(self, session): # create tasks for aiohttp session
    temp = []
    for offer in self.tours:
        temp.append(session.get(offer["ourl"]))
    tasks = []
    l = self.concurrent_list(len(temp))
    for _ in l:
        tasks.append(temp[:self.MAX_CONCURRENT_REQUEST])
        temp = temp[self.MAX_CONCURRENT_REQUEST:]
    return tasks

async def _offer_codes(self):
    codes = []
    async with ClientSession() as session:
        tasks = self._offers_task(session=session)
        for task in tasks:
            responses = await asyncio.gather(*task)
            await asyncio.sleep(3)
            for response in responses:
                d = response.url.parts[2]
                codes.append(d)
            responses = []
    return codes

burada tek seferde self.MAX_CONCURRENT_REQUEST’e tanımlanan sayı kadar eşzamanlı istek atıyor. _offers_task fonksiyonu içerisindeki tasks değişkeni bir liste ve listenin içinde toplam url’in 50şer 50şer bölünmüş hali bulunuyor örnek olarak toplam 116 url varsa [[50_url], [50_url],[16_url]] şeklinde bir liste çıkıyor.

for task in tasks:

kısmında bu 50şerli urllere istek atıyorum bunu await asyncio.gather(*task) ile yapıyorum. ilk 50li istekte bu kısım çalışırken sonraki iterasyonda bu kısım yanıt vermiyor.
asenkron programlama konusunda çok tecrübeli değilim. tecrübeli olan biri varsa bu konuda yardımcı olabilirse çok mutlu olurum.

NOT: bu aslında bir class fakat classın tamamını paylaşamıyorum ne yazık ki.