| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
Wizard
Data înscrierii: 01/Iul/2004
Mesaje: 30
|
| Trimis: Mar Iul 13, 2004 5:57 pm Titlul subiectului: Multithreading |
|
|
S-a mai lovit cineva de probleme legate de multithreading in PHP?
Si daca da cum le-a rezolvat.
Eu am o problema mare in momentul asta si caut tot felul de metode sa emulez un fel de multithreading.
Apreciez orice indicatie. |
|
| Sus |
|
Troto
Data înscrierii: 29/Iun/2004
Mesaje: 249
Locație: Brasov
|
| Trimis: Mie Iul 14, 2004 12:05 am Titlul subiectului: |
|
|
Poate asta te va ajuta :
http://ro.php.net/ref.pcntl
Totusi pentru windows nu stiu un echivalent |
|
| Sus |
|
coditza
Data înscrierii: 23/Ian/2004
Mesaje: 298
Locație: cluj-napoca
|
| Trimis: Mie Iul 14, 2004 7:49 pm Titlul subiectului: |
|
|
pentru windows nu exista... in schimb eu am folosit (sub linux) pnctl_X, dar aveam nevoie de instante care nu comunicau una cu alta ci doar cu parintele... suport pentru "threaduri" nu cred ca exista inca in php sau cel putin nu e foarte evoluat
btw, extensia asta nu e recomandata pentru servere web, so nu cred ca o sa gasesti vreun hoster care sa-ti ofere asa ceva... |
|
| Sus |
|
Wizard
Data înscrierii: 01/Iul/2004
Mesaje: 30
|
| Trimis: Joi Iul 15, 2004 1:06 am Titlul subiectului: |
|
|
Nu am nevoie sa-mi ofere nimeni... am eu control asipra serverului. Aplicatie de intranet etc.
In php4 se comporta destul de ciudat pcntl, sau nu stiu eu sa-l folosesc.
Am gasit si extensie pentru windows, problema e ca cere php4 si eu nu pot sa portez tot codul acum pe php4 dupa 2 luni de dezvoltare pe php5 si nici n-am suport SOAP, asa ca ar trebui sa trec inapoi pe xml-rpc.
Daca ai vreun link spre vreo documentatie alta decat cea de la php.net raman recunoscator. Sunt destul de bune si notele de la documentatia oficiala, doar ca nu reusesc eu sa ma prind. |
|
| Sus |
|
Troto
Data înscrierii: 29/Iun/2004
Mesaje: 249
Locație: Brasov
|
| Trimis: Joi Iul 15, 2004 1:08 am Titlul subiectului: |
|
|
| totusi poate ai putea oferi mai multe informatii despre problema ta. poate cine stie.. te putem ajuta |
|
| Sus |
|
Wizard
Data înscrierii: 01/Iul/2004
Mesaje: 30
|
| Trimis: Joi Iul 15, 2004 1:59 am Titlul subiectului: |
|
|
Ok. Problema e simpla si cred in Java s-ar rezolva repede.
Practic am nevoie sa deschid un stream sa ascult pe un port.
Beleaua incepe dupa asta, pentru ca cu tot cu stream_set_blocking, atat timp cat nu am conexiune si transmitere de date pe stream-ul respectiv, scriptul nu trece mai departe si ramane sa asculte dupa date. Odata ce s-a realizat conexiunea, totul e peachy, pot face ce vreau, scriptul continua executia in mod normal.
Insa conexiunea asta poate nu se intampla imediat, dar eu am nevoie sa raspund la niste request-uri de date, care sunt un proces total diferit de primul si folosesc SOAP.
O solutie ar putea fi sa rulez cele 2 procese separat ca 2 instante diferite de php, nu? Insa eu am nevoie de datele care imi vin pe prima conexiune ca sa le prelucrez si sa le trimit request-ului SOAP. Si request-urile SOAP se intampla random, adica nu vreau sa ma prinda in timp ce eu astept o conexiune.
In plus, in acelasi timp trebuie sa permit unui al doilea script sa verifice progresul primului si sa randeze o imagine browserului. Or eu daca ma blochez asteptand conexiuni pe portul respectiv, adio nene.
Any ideas? |
|
| Sus |
|
Troto
Data înscrierii: 29/Iun/2004
Mesaje: 249
Locație: Brasov
|
| Trimis: Joi Iul 15, 2004 2:40 am Titlul subiectului: |
|
|
| eventual ai putea sa folosesti stream_set_timeout() intr-un loop. |
|
| Sus |
|
Wizard
Data înscrierii: 01/Iul/2004
Mesaje: 30
|
| Trimis: Joi Iul 15, 2004 7:51 pm Titlul subiectului: |
|
|
Am incercat acum si asa.
Insa nu pot sa las sa faca timeout pentru ca s-ar putea sa se intample in timp ce primeste datele (nu sunt sigur aici, documentatia oficiala lasa de dorit) si in plus chiar daca timeout-ul nu se intampla in timp ce primesc date, nu pot sa ies din loop si sa verific de existenta unui request SOAP si apoi sa ma intorc in loop. Daca in timp ce fac asta primesc o conexiune remote pe socket? Cum eu nu ascult in momentul respectiv, va da eroare remote. Trebuie sa ascult tot timpul pe socket-ul respectiv, si ma intorc de unde am plecat... e un cerc vicios... |
|
| Sus |
|
Troto
Data înscrierii: 29/Iun/2004
Mesaje: 249
Locație: Brasov
|
| Trimis: Joi Iul 15, 2004 11:34 pm Titlul subiectului: |
|
|
pai daca conexiunea nu s-a realizat atunci iesi din loop.
iar daca tu primesti date atunci nu o sa primesti timeout
mai folosesti si stream_set_blocking
poate nu inteleg eu.. dar nu prea vad unde este problema |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |