A' roinn cruinneachadh proxy eadar snìomhan Python le ciudha
Cleachd ciudha sioncronaichte agus bloc finally gus aon proxy a ghlèidheadh airson obair snìomha sioncronaich agus a thilleadh às a dhèidh.
Nuair a tha grunn snìomhan a' roinn cruinneachadh beag proxy, dh'fhaodadh taghadh inntrigidh air thuaiream an aon proxy a thoirt do dhà obair ghnìomhach. Faodaidh ciudha na h-inntrigidhean a tha rim faighinn air iasad an-dràsta a chumail:
from contextlib import contextmanager
from queue import Queue
available = Queue()
for endpoint in dict.fromkeys(proxy_urls):
available.put(endpoint)
@contextmanager
def borrow_proxy():
endpoint = available.get(timeout=5)
try:
yield endpoint
finally:
available.put(endpoint)
def process_url(url):
with borrow_proxy() as endpoint:
return fetch_one(url, endpoint)
Tog an ciudha aon turas, mus tòisich na snìomhan obrach. Tha URLan làn-chrìochnaiche ann an proxy_urls. Tha tagraichean poblach rim faighinn anns an liosta proxy an-asgaidh; cleachd am protocol agus an cruth URL a tha fetch_one a' cumail taic ris. Feumaidh an gnìomh sioncronaichte fetch_one a tha ann mar-thà a obair lìonra a chrìochnachadh agus freagairt sam bith a dhùnadh mus till e. Rud eile, chrìochnaicheadh an aonta-faire fhad 's a tha an ceangal fhathast a' cleachdadh a' phroxy sin.
Bheir Queue.get air falbh aon inntrigeadh a tha ri fhaighinn gu h-adamhach. Bidh cruinneachadh falamh a' feitheamh an àite a bhith a' sganadh brataichean co-roinnte a-rithist is a-rithist. Mura tig inntrigeadh sam bith taobh a-staigh còig diogan, ruigidh queue.Empty an neach-ghairm; tagh poileasaidh ath-dhearbhaidh, fàilligidh no cur-à-bhàird na h-aplacaid airson an toraidh sin.
Bheir am bloc finally inntrigeadh a chaidh fhaighinn air ais às dèidh soirbheachais no eisgeachd. Chan eil e ag ràdh gu bheil ceann-uidhe a dh'fhàillig fallain. Feumaidh poileasaidhean cuarantain, ionaid agus fuarachaidh slighe fhollaiseach an àite a bhith a' tilgeil gu sàmhach a h-uile proxy a chì mearachd sealach.
Bidh dì-bhleith na h-aon sreangan URL a' cur casg air inntrigidhean dùbailte sa chiudha. Faodaidh URLan eadar-dhealaichte fhathast iomradh a thoirt air an aon proxy fiosaigeach no ionad-fàgail; cuir còmhla iad a dh'aona ghnothaich ma dh'fheumas eisdealachd buntainn ris a' ghoireas cho-roinnte sin. Bidh an ciudha a' co-òrdanachadh shnìomhan sa phròiseas seo, chan e luchd-obrach air innealan eile.