ugrás a tartalomhoz

PHP, CURL párhuzamos kérések

therest · 2013. Jan. 24. (Cs), 01.29
Adott egy weboldal, ami viszonylag sűrűn hív ajaxon keresztül, php scripteket.
A php szkriptekben session használat van, arra figyelek, hogy a session fájlok írását amint lehet zárjam.
Szintén php szinten curl-el más szolgáltatásokhoz csatlakozom (c#-ban írt webszervízekhez pl).
Ez a szolgáltatások nem mindig válaszolnak gyorsan, és én sem dobhatom a curl-ös kapcsolatot timeouttal.

A kérdésem az, hogy egy ilyen helyzetben a sok hívás milyen problémákat okozhat. Mikre érdemes figyelni, milyen technikákkal lehetne a konkurens folyamatokat minél gördülékenyebbé tenni?

Köszi!
 
1

Valaki, aki már csinált

therest · 2013. Jan. 25. (P), 15.07
Valaki, aki már csinált ilyesmit mondhatna pár szót. :)
2

esetleg

dbedo · 2013. Jan. 25. (P), 16.02
ezt nezd meg a curlos temahoz: http://code.google.com/p/multirequest/
3

proxy

joed · 2013. Jan. 26. (Szo), 15.22
Ha jól értem, akkor a PHP alkalmazásod valójában egy proxy valamilyen .NET service felé.
Amit Te írtál az egy szinten működhet, de mivel az Ajax kéréseid folyamatos kapcsolatot tartanak fenn, előfordulhat, hogy nagy terhelés és kellően hosszú válaszok esetén befullasztják a webszervert.
Ezért a következő módszert javasolnám:
Az első Ajax hívásra elindítasz egy háttérfolyamatot PHP-ból (pl. screen-en). Ez a folyamat megcsinálja az adatlekérést, ami tetszőleges ideig futhat. Ennek a háttérfolyamatnak adsz egy azonosítót és az állapotát (fut, kész, hiba stb.) valahol tárolod (pl. adatbázis, PID fájl stb.) és persze az eredményét is. Az első Ajax kérésre visszaadod a háttérfolyamat azonosítóját, kliens oldalon pedig megoldod, hogy adott időközönként ezzel az azonosítóval rákérdezel, hogy kész van-e már a háttérfolyamatod. ha kész, megkapod az adatokat, ha még nincs kész, tovább próbálkozol.
Én így szoktam csinálni. Működik, méghozzá jól.
4

Köszi a hozzászólásokat, php

therest · 2013. Jan. 28. (H), 10.44
Köszi a hozzászólásokat, php háttérfolyamatokat megnézem.
Egyébként a php réteget olyan vékonyra akarnám hagyni amennyire csak lehet, de gondolom, valamilyen szintem kénytelen leszek bonyolítani a fentiek miatt.