Chirurgia endoscopică a hipofizei
"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală. Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale. www.neurohope.ro |
Break, While, Loop intrebare PHP
Last Updated: Jun 05 2015 09:37, Started by
marius019
, Jun 04 2015 12:24
·
0
#1
Posted 04 June 2015 - 12:24
Bună ziua,
Am un cod care se repetă de 10 ori utilizând while-do şi care generează 3 numere diferite din 5 în 5 secunde fiecare număr, utilizând sleep(5). Eu vreau să pun o pauză de 60 secunde între fiecare dintre cele 10 repetări. De exemplu după ce s-au generat cele 3 numere, sistemul o va lua de la capăt cu alte 3 numere, eu vreau ca înainte să o ia de la capăt , să pună o pauză repetării de 60 secunde apoi să înceapă iar afişarea numerelor. Am încercat cu Break însă îmi opreşte dfinitiv sistemul, şi nu o mai ia de la capăt. Pentru acest sistem folosesc următorul cod: $i= 1; do{ $one = mt_rand(1, 99); $two = mt_rand(1, 99); $three = mt_rand(1, 99); $this->SendMessage( 'Numar: '.$one.'' ); sleep(5); $this->sendMessage( 'Numar: '.$two.'' ); sleep(5); $this->sendMessage( 'Numar: '.$three.'' ); sleep(5); $this->SendMessage( 'Cele trei numere au fost afisate, urmatoarele 3 vor fi afisate in 60 de secunde.' ); $i++; } while ($i<10);După ce afişează ultimul mesaj aş vrea ca repetarea să fie oprită timp de 60 secunde, iar după cele 60 secunde să înceapă iar. Menţionez că nu vreau să folosec funcţia sleep pentru această pauză de 60 secunde, deoarece vreau ca în aceste 60 de secunde sistemul să mai facă şi câte un update în baza de date, iar dacă folosesc sleep nu va mai putea face update-ul, pentru că din păcate aşa merge php atunci când folosim sleep.. Folosesc CLI TASK pentru a porni codul Este posibil ceea ce vreau eu să fac? Apreciez orice răspuns ajutător sau cel puţin cu referire la ceea ce vreau eu să fac. Mulţumesc. Edited by marius019, 04 June 2015 - 12:38. |
#3
Posted 04 June 2015 - 12:36
Deoarece vreau ca în acele 60 de secunde sistemul să mai facă şi câte un update în baza de date, iar dacă folosesc sleep nu va mai putea face update-ul, pentru că din păcate aşa merge php atunci când folosim sleep..
Menţionez ca atunci când pornesc acest cod folosesc CLI TASK Edited by marius019, 04 June 2015 - 12:40. |
#4
Posted 04 June 2015 - 12:41
pai si ce e asa complicat, iti pui un sleep, faci update urile sau invers, faci updateurile si pe urma pui sleep ul cu un minus de secunde in functie de cat dureaza update ul
|
#5
Posted 04 June 2015 - 12:46
yonut_a, on 04 iunie 2015 - 12:41, said:
pai si ce e asa complicat, iti pui un sleep, faci update urile sau invers, faci updateurile si pe urma pui sleep ul cu un minus de secunde in functie de cat dureaza update ul Vreau ca repetarea sa fie si oprita iar eu sa imi fac update-urile in acest timp in care este oprita.. e complicat ce zic, poate nu stiu eu exact cum sa explic. Edited by marius019, 04 June 2015 - 12:52. |
#6
Posted 04 June 2015 - 12:50
do { //codul tau //update //sleep(60- cat a durat update) }while Nu vad de ce nu ar functiona, asta se intelege ca vrei sa faci |
#7
Posted 04 June 2015 - 12:52
yonut_a, on 04 iunie 2015 - 12:50, said: do { //codul tau //update //sleep(60- cat a durat update) }while Nu vad de ce nu ar functiona, asta se intelege ca vrei sa faci Sistemul vreau sa mearga in felul urmator: AFISEZ NUMERELE -> OPRESC REPETAREA -> FAC UPDATE( sa zicem ca dureaza 30 secunde) -> MAI ASTEPT inca 30 secunde (pana la 60) -> PORNESC iar de la capat. s.a.m.d |
#9
Posted 04 June 2015 - 12:58
yonut_a, on 04 iunie 2015 - 12:57, said:
ce intelegi tu prin OPRESC REPETAREA ? OPRESC REPETAREA = adica sa nu se mai repete acea afisare a celor 3 numere random timp de 60 de secunde. Edited by marius019, 04 June 2015 - 12:59. |
#10
Posted 04 June 2015 - 12:58
Ceea ce cauti tu se cheama in Javascript "setTimeout" si nu exista asa ceva in PHP din simplul motiv ca nu este event-based.
Ce poti face in schimb este urmatoarea chestie: din JS faci apel catre un script de PHP care iti returneaza numerele respective iar timeout-ul de 60 de secunde il faci in Javascript. |
|
#12
Posted 04 June 2015 - 13:03
RCG, on 04 iunie 2015 - 12:58, said:
Ceea ce cauti tu se cheama in Javascript "setTimeout" si nu exista asa ceva in PHP din simplul motiv ca nu este event-based. Ce poti face in schimb este urmatoarea chestie: din JS faci apel catre un script de PHP care iti returneaza numerele respective iar timeout-ul de 60 de secunde il faci in Javascript. |
#13
Posted 04 June 2015 - 13:07
Intelege o chestie: PHP nu este bazat pe evenimente, ci secvential. Daca intrerupi thread-ul, il intrerupi de tot indiferent de ce ai face tu. Nu ai timere in PHP pentru ca, din nou, este secvential.
Un limbaj event-based este acela care iti permite sa faci salturi in cod fara sa intrerupi firul executiei si fara apeluri de functii. Un limbaj secvential este acela care iti ruleaza codul step-by-step si nu trece la linia urmatoare pana ce actuala nu este "gata". |
#14
Posted 04 June 2015 - 13:07
Nu poti, regandeste ti codul ca altfel nu iti va iesi decat prin paralelizare si te complici aiurea pentru nimic.
E foarte simplu sa iti introduci codul de update in cadrul loop ului tau si rezolvi problema |
#15
Posted 04 June 2015 - 13:11
sau poți pune funcția ce îți generează cele 3 numere într-un fișier separat și pui un cronjob să-l lanseze în fiecare minut. cele 3 numere pot fi salvate într-un fișier text de unde vor fi preluate cu un js la fiecare 60 secunde
|
|
#16
Posted 04 June 2015 - 14:10
mberilla, si daca ai mai multi clienti carora vrei sa le oferi nr separate ce faci? Dar daca nu ai pe nimeni care sa fie activ in momentele respective de ce sa faci un cronjob inutil?
interval sau timeout in JS and that's about it. |
#17
Posted 04 June 2015 - 17:04
Si daca nu exista JS ce faci? Pornesti un browser pe server? (sau treci pe NodeJS?)
Nu-i greu sa ai un cron job care citeste de undeva ce "task-uri" are de rulat. Si atunci poti avea cate un "task" pentru fiecare "client" care genereaza separat numere. Nu-i greu nici sa ai un daemon PHP care face treaba asta, fara sa mai ai treaba cu cron, si atunci nu tot pornesti si opresti procese, ai unul pornit permanent. Ce e important de inteles din toata povestea asta e ca intr-un singur proces PHP _nu_ poti face ce vrei tu. Bucata care trebuie sa ruleze periodic o izolezi in procesul ei pe care il rulezi cat de des ai tu nevoie. Ori ca daemon pe Linux sau serviciu pe Windows ori cu ceva tool care sa-l ruleze, si anume cron pe Linux sau Scheduled Tasks pe Windows. |
#18
Posted 05 June 2015 - 09:37
sergiu, eu sunt Javascriptist de fel . Deci oricum eu mergeam pe NodeJS .
Dar ca sa nu mai batem apa'n piua: omul zicea asa: "După ce afişează ultimul mesaj" ceea ce m-a facut sa cred ca ai un client si un browser. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users