У меня есть массивСделать 2 функции одновременно и параллельно?
myArray = array(url1,url2,...,url90)
Я хочу, чтобы выполнить этот COMMANDE 3 раза в параллельном
scrapy crawl mySpider -a links=url
и каждый раз с 1 URL,
scrapy crawl mySpider -a links=url1
scrapy crawl mySpider -a links=url2
scrapy crawl mySpider -a links=url3
и когда первый один закончить свою работу, он получит другой URL-адрес, как
scrapy crawl mySpider -a links=url4
Я прочитал this question и this one, и я стараюсь это:
import threading
from threading import Thread
def func1(url):
scrapy crawl mySpider links=url
if __name__ == '__main__':
myArray = array(url1,url2,...,url90)
for(url in myArray):
Thread(target = func1(url)).start()
Когда первый один закончил свою работу, он делате другой адрес? , в вашем редактировании вы не пишете «for loop» – parik
Да - ThreadPools создает 3 потока, а 'pool.map' запускает' func' для каждого элемента из 'myArray' с помощью этих потоков. Поэтому, когда один поток заканчивает свое задание, он запускает 'func' со следующим url из' myArray'. В этом случае вам не нужно писать «for loop», поскольку функции «map» выполняются внутри. – Pax0r