Autor Zpráva
quatzael
Profil
Využívám více webových služeb najednou a potřeboval bych nějak vyřešit, abych nemusel postupně čekat na každou odpověď, protože ty by trvalo celkem dlouho, ale abych mohl odeslat více requestů najednou a potom čekat na odpovědi.

Abych to upřesnil, potřeboval bych, aby se čekací doby na odezvu nesčítaly, ale aby celková doba celého procesu se rovnala nejdelší době odezvy.

Je to nějak v PHP možné udělat?
Keeehi
Profil
quatzael:
Dá se to pararelizovat forkováním procesů, nebo více vlákny v rámci jednoho procesu.
Pokud jsi někde na hostingu tak s tím nejspíš budeš mít problémy. Jinak přeji hodně štěstí, s pararelismem si člověk užije spoustu srandy protože všechno funguje trochu jinak než doposud. A těch nových chyb a problémů které ještě nikdy nepotkal.
quatzael
Profil
Keeehi:
Pokud jsi někde na hostingu tak s tím nejspíš budeš mít problémy.
Na hostingu někde jsem. Co to znamená, že budu mít "problémy"? Že to nepůjde? Nebo, že si užiju tu srandu?
Ty "hostingový problémy" se týkají obou metod?
Keeehi
Profil
Není to myšleno že určitě budeš mít problémy ale že s vysokou pravděpodobností mohou nastat. Nastavení webhostingů bývají celkem striktní a je velmi pravděpodobné že hraní si s procesy a vlákny budou zakazovat. Když jsem to zkoušel u wedosu, tak tam fmají limit na 5 souběžně spuštěných procesů a fork je zakázaný. Vlákna jsem nezkoušel ale nedával bych tomu velké naděje.

Ještě se dá spustit si pararelní script tak, že si venkem dotážete na svůj server zpátky ale to je velká prasárna. I když jako nouzovka to možné je.
juriad
Profil
Ještě existují asynchronní sockety: stackoverflow.com/questions/1432477/can-php-asynchronously-use-sockets
Ale to je o několik řádů nižší vrstva než cURL, a to znamená, že by sis úplně všechno musel programovat sám.
Alphard
Profil
Ty teď myslím pracuješ s curl, řešení od Jakuba Vrány jsi viděl github.com/vrana/php-async/blob/master/CurlAsync.php? Odkázáno z Paralelní zpracování, kdyžtak koukni i do HosipLanova kódu, jestli to dokončil, co si pamatuji, jeho kódy bývaly kvalitní.
quatzael
Profil
Alphard:
Já teď momentálně se snažím přes curl zprovoznit jeden soap request (zatím neúspěšně).
V podstatě by se mělo jednat o 3 až 5 klasických soapových webových služeb (do budoucna možná víc) a jedno REST API. Jestli to pojede přes SoapClient nebo curl mi je už v podstatě jedno, hlavně aby to nějak fungovalo.. (Původně jsem chtěl všechno, aby bylo přes SoapClient, ale už jsem rezignoval na tohle "čistý" řešení..)

kdyžtak koukni i do HosipLanova kódu
Co to je? Našel jsem nějakou Hosiplanovou šílenost, ale nevím co to vůbec dělá.. (každopádně to zas tak šíleně nevypadá)
Jan Tvrdík
Profil
quatzael:
Co to je?
Měl na mysli (aspoň doufám) github.com/Kdyby/Curl, nicméně podpora pro paralelní požadavky tam chybí.

Můžeš se taky podívat na řešení od Facebooku (článek od Jakuba).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: