[PHP] Clones in script

Pagina: 1
Acties:
  • 135 views sinds 30-01-2008
  • Reageer

  • troxx
  • Registratie: Mei 2001
  • Laatst online: 13-01-2020

troxx

Vechain maximalist

Topicstarter
Beste got gebruikers, een tijdje geleden heb ik een heel mooi script geschreven om van al mijn mp3s te checken of ze nog werken (werkt via een fopen en een header check).

Nu gaat het me echter alleen nog al traag, nu weet ik uit ervaring dat het sneller zou moeten kunnen gaan als je meerdere mp3s checkt op hetzelfde moment, dat je dus met clones gaat werken.

Is dit uberhaupt mogelijk in php? Zo ja, waar moet ik beginnen....

aka Crypto T


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

threads :?
uhm fork() :?
draait het op een unix machine?

Doet iets met Cloud (MS/IBM)


  • troxx
  • Registratie: Mei 2001
  • Laatst online: 13-01-2020

troxx

Vechain maximalist

Topicstarter
unix ja....
even kijken in de manual..

aka Crypto T


  • troxx
  • Registratie: Mei 2001
  • Laatst online: 13-01-2020

troxx

Vechain maximalist

Topicstarter
ik denk niet dat dit is wat ik bedoel... die functie om te kijken of 1 enkele mp3 werkt of niet heb ik geschreven in een functie die ik zo aanroep

checkmp3($id);

hoe zou ik dit kunnen klonen dan voor verschillende ids?

aka Crypto T


  • troxx
  • Registratie: Mei 2001
  • Laatst online: 13-01-2020

troxx

Vechain maximalist

Topicstarter
Shit... ik kom er nog niet uit. volgens mij kan ik met fork het script alleen 40 keer laten uitvoeren, maar wat ik wil is binnen het script verschillende clones zeg maar.. (in verband met de while die aangeeft welke ids er gecheckt moeten worden)...

weet iemand hoe ik dit zou klaarspelen ?

aka Crypto T


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

psssssssst Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/tweakers/images/icons/edit.gif

Doet iets met Cloud (MS/IBM)


  • Vigory
  • Registratie: November 2000
  • Laatst online: 15-04 10:26
Als je via een browser werkt kun je heel dirty met bijv. 5 frames werken om 5 mp3's tegelijk te checken.

Verwijderd

Op zaterdag 29 juni 2002 22:13 schreef Vigory het volgende:
Als je via een browser werkt kun je heel dirty met bijv. 5 frames werken om 5 mp3's tegelijk te checken.
jah maar dat wil hij dus niet,
hij wil dat het allemaal in 1 script gebeurt omdat ie dan maar 1 keer de info uit de db hoeft te trekken

  • Vigory
  • Registratie: November 2000
  • Laatst online: 15-04 10:26
Op zaterdag 29 juni 2002 22:51 schreef Foxboy het volgende:
jah maar dat wil hij dus niet,
hij wil dat het allemaal in 1 script gebeurt omdat ie dan maar 1 keer de info uit de db hoeft te trekken
Volgens mij gaat het niet om de db, maar om het openen van de MP3's. Dat moet in threads want dat gaat veel te traag.

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Ik geloof niet dat daar mogelijkheden voor bestaan in php...

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op zondag 30 juni 2002 11:36 schreef eamelink het volgende:
Ik geloof niet dat daar mogelijkheden voor bestaan in php...
Die kent inderdaad geen threading/forking/etc.

Je kan wel handmatig meerdere processen starten, maar dan moet je met client-servers gaan werken als je graag maar 1 dbconnectie wilt.
Lijkt me wat veel van het goede :)

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 02-09 12:24

Apache

amateur software devver

Ik heb hier ooit eens gelezen dat classes tegelijk worden uitgevoerd (nog niet getest), misschien kan je uit 1 class 4 objecten initialiseren en daar telkens een mp3 mee controleren, dan kan je er bvb 4 tegelijk mee doen.

If it ain't broken it doesn't have enough features


  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Op zondag 30 juni 2002 12:37 schreef Apache het volgende:
Ik heb hier ooit eens gelezen dat classes tegelijk worden uitgevoerd (nog niet getest), misschien kan je uit 1 class 4 objecten initialiseren en daar telkens een mp3 mee controleren, dan kan je er bvb 4 tegelijk mee doen.
Ik geloof van niet, want dan zou dit testje:
PHP:
1
<?class Blaat{    var $sleepTime;    function Blaat($sleepTime)    {        $this->sleepTime = $sleepTime;    }            function testje()    {        sleep($this->sleepTime);        print "Ik heb $this->sleepTime seconden geslapen.<br />";    }}$ob1 = new Blaat(1);$ob2 = new Blaat(2);$ob3 = new Blaat(3);$ob1->testje();$ob2->testje();$ob3->testje();?>

in totaal dus 3 seconden moeten slapen... ($ob1 en $ob2 zijn dan klaar als $ob3 nog bezig is).

Maar het duurt 6 seconden, want 2 begint pas als 1 wakker is, en 3 als 2 wakker is...

Dus, helaas...:(

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 02-09 12:24

Apache

amateur software devver

Zou het helpen als het in een herhaling word uitgevoerd?

K'herinner me de thread nog, was iemand die veel url's moest checken of ze nog leefden, 2 oplossingen werden toen aangedragen nl in blokken checken 1 -> 50 en dan automatisch pagina terug aanroepen voor 51 -> 100, of classes, maar dat heb ik dus nooit getest, ik kan de thread niet zometeen terugvinden in de search.

If it ain't broken it doesn't have enough features


  • Vigory
  • Registratie: November 2000
  • Laatst online: 15-04 10:26
Misschien iets met:

exec("php checkmp3.php 1 &");
exec("php checkmp3.php 2 &");
exec("php checkmp3.php 3 &");

Dit checkt de mp3's met nummer 1 t/m 3 en wacht niet tot het php script klaar is. Op deze manier check je ze dus alle 3 tegelijk. Moet je alleen in een database kijken om of ze al klaar zijn met de uitvoer.

  • troxx
  • Registratie: Mei 2001
  • Laatst online: 13-01-2020

troxx

Vechain maximalist

Topicstarter
Vigory, hier heb ik denk ik wel wat aan.... gewoon 40 keer starten en steeds een nieuwe mp3 checken.. Weet iemand hoe ik kan zien hoe en welke processen er dan lopen? Als er dan weer minder dan 40 processen zijn moet ik die natuurlijk weer aanvullen tot 40.

aka Crypto T


  • Vigory
  • Registratie: November 2000
  • Laatst online: 15-04 10:26
Dat weet ik zo niet. Je zou dat natuurlijk ook in mysql kunnen opslaan.

Iets van:

Record invoegen in tabel threads
Auto insert id ophalen
MP3 checken
MP3 info in db opslaan
<je kan ook een aan mp3's achter elkaar checken in 1 thread>
Record met insert id uit tabel threads verwijderen

  • troxx
  • Registratie: Mei 2001
  • Laatst online: 13-01-2020

troxx

Vechain maximalist

Topicstarter
alles wat gecheckt wordt gewoon in een tijdelijke tabel gooien dus.. Das mooi makkelijk, en dan dat script op een cron gooien om te checken of de clones nog alive zijn, en zo niet ze alive maken..

Ik denk dat ik weet hoe ik het ga maken, ga er gelijk werk van maken.. Thx all.

aka Crypto T

Pagina: 1