Моя программа загружает список запросов, подобных этим: < /p>
Код: Выделить всё
with open(wordlist) as words:
w = words.read().splitlines()
Код: Выделить всё
async def _process_dns_wordlist(self, wordlist, domain):
"""Takes a list of words and adds them to the task list as space is available"""
for word in wordlist:
# Wait on the semaphore before adding more tasks
await self.sem.acquire()
host = '{}.{}'.format(word, domain)
task = asyncio.ensure_future(self._dns_lookup(host))
task.add_done_callback(functools.partial(self._dns_result_callback, host))
self.tasks.append(task)
await asyncio.gather(*self.tasks, return_exceptions=True)
Я предполагаю, что это потому, что после того, как будущее обрабатывается моим обратным вызовом, оно остается в памяти, тратя впустую пространство. Моя проблема в том, что я не могу понять, что использовать, чтобы удалить обработанное будущее, как только я с ним закончу. Я прочитал документацию asyncio и не вижу метода уничтожения/удаления. Я упускаю что-то действительно очевидное?
Спасибо за помощь!
Подробнее здесь: https://stackoverflow.com/questions/446 ... cio-python
Мобильная версия