Скажем, у меня есть БД 2 million
документов, и я хотел бы перебрать их все.Я хотел бы обрабатывать пакеты документов n
сразу, так как я использую функцию как:
def work(self,items):
self.drivers = [webdriver.Chrome() for x in list(range(3))]
tasks = [self.executor.submit(self.parse_url, self.rnd_driver(), item['Link']) for item in items]
for task in concurrent.futures.as_completed(tasks):
print(task.result())
return task.result()
Что-то вроде:
items = collection.find()
work(items)
Не будет работать, яне хватит памяти. Есть ли встроенный метод, позволяющий курсору возвращать пакеты n
элементов, или мне нужно написать пользовательскую функцию?
Я прочитал этот вопроси я полагаю, я мог бы сделать что-то вроде:
n = 100
next = True
while next:
l = [x for _, x in zip(range(n), start_items)]
if l:
work(l)
else:
next = False