Multi-cURL-oordragte voltooi in hul eie volgorde. As jy aan elke hanteerder 'n ander instaanbediener toegewys het, behoort die eerste voltooide resultaat nie noodwendig aan die eerste instaanbediener in jou invoerlys nie.

Heg 'n stabiele oordrag-identifiseerder terwyl jy elke hanteerder opstel. As jy selekteerbare openbare eindpunte toets, voorsien die HTTP-instaanbedienerlys HTTP-kandidate. PHP stel libcurl se private-data-meganisme beskikbaar:

$id = 'job-17';
curl_setopt($handle, CURLOPT_PROXY, 'http://203.0.113.10:8080');
curl_setopt($handle, CURLOPT_PRIVATE, $id);

Wanneer curl_multi_info_read() 'n voltooide oordrag rapporteer, gebruik die teruggekeerde hanteerder om die identifiseerder te herwin:

$id = curl_getinfo($message['handle'], CURLINFO_PRIVATE);

Hou 'n toepassingsrekord wat deur daardie identifiseerder gesleutel is, met die bestemming, die gekonfigureerde instaanbediener en die pogingnommer. 'n Herpoging deur 'n ander instaanbediener verdien 'n nuwe pogingrekord, selfs al behoort dit aan dieselfde oorkoepelende taak.

Hou drie soorte adresse apart

Die gekonfigureerde instaanbediener-eindpunt is die adres wat aan cURL verskaf word. 'n Verbinding se eweknie-adres beskryf die netwerkverbinding wat cURL oopgemaak het. 'n Uitgangs-IP wat die bestemming sien, is inligting wat van die ander kant gerapporteer word. Hulle kan verskil, veral by gekettingde of verskaffer-bestuurde instaanbedieners.

Private metadata teken jou beoogde konfigurasie aan; dit kan nie bewys watter IP die bestemming gesien het nie. Omgekeerd sê 'n bestemming se IP-antwoord nie outomaties watter hanteerder in jou program dit geproduseer het nie.

Stoor 'n veilige instaanbediener-identifiseerder in roetine-logboeke. As die volle eindpunt geloofsbriewe bevat, versprei die log van daardie URL vir elke mislukte oordrag die wagwoord deur jou foutversameling.

Hierdie klein boekhou-stap maak gemengde resultate makliker leesbaar: een taak, een poging, een gekose instaanbediener en een werklike uitkoms. Dit vermy ook om te steun op toevallige hanteerder-voorstellings wat verander het tussen PHP se hulpbron-gebaseerde en objek-gebaseerde cURL-API's.

Verwante artikels