O ile mi wiadomo, różnica między map
i imap
polega na tym, że map
czeka na wszystkie żądania zakończenia, a następnie zwraca zamówione dane. Natomiast imap
natychmiast zwraca dane i zamawia mniej.imap vs. mapa w bibliotece podróbek
Gdy używam:
urls = [...some_data...]
rs = (grequests.get(u,, hooks=dict(response=callback_f)) for u in urls)
r = grequests.map(rs)
haczyk służy jak najszybciej zakończyć wszystkie żądania, a funkcja zwrotna jest wywoływana.
Gdy używam:
urls = [...some_data...]
rs = (grequests.get(u,, hooks=dict(response=callback_f)) for u in urls)
r = grequests.imap(rs)
wtedy ani jeden wniosek został wysłany.
Zgodnie z mapą dokumentacji i imapem mają dokładnie ten sam interfejs API.
Czy to oczekiwane zachowanie? Czy nie powinienem używać haków z imapem? Używam Python 3.5.
więc nie ma w zasadzie żadnego sposobu, aby 'imap' emisji wszystkich żądań jednocześnie? – maax
Ma parametr 'size' określający, ile żądań powinno być wykonywanych jednocześnie. Przynajmniej zgodnie z ['grequests.imap' na" Nullege Python Samples "] (http://nullege.com/codes/search/grequests.imap) – MSeifert
@MSeifert również używam' .imap (..., size = 1) 'z dużymi żądaniami, więc są wysyłane jeden po drugim w tle. – Winand