Hallo,
ich habe ein PHP-Shell-Script, welches ich gerne so umschreiben möchte, dass ein Array nicht sequentiell abgearbeitet wird (foreach), sondern dass aus diesem Array immer z.B. 4 Items gleichzeitig abgearbeitet werden. Geht sowas bei PHP relativ einfach?
Parallele Befehlsausführung mit PHP?
-
darkspirit
- Posts: 553
- Joined: 2002-10-05 16:39
- Location: D'dorf
- Contact:
Re: Parallele Befehlsausführung mit PHP?
Ich fürchte, so ganz habe ich dich nicht verstanden, aber wie wäre es denn mit einer for-Schleife mit $i=$i+4 als Reinitialisierungs-Ausdruck? Wirklich parallel läuft das dann natürlich aber auch nicht ab..
Re: Parallele Befehlsausführung mit PHP?
hm also ich habe hier folgenden code:
$servers ist ein multidimensionales Array, das mehrere der folgenden art von einträgen enthält:
Die oben aufgeführte schleife würde ich gerne in irgendeiner weise parallel abarbeiten, weiß aber leider nicht wie... gibts da bei php ne chance mit rekursion oder so zu arbeiten?
Code: Select all
<?php
define("MYDIR", dirname(__FILE__));
include_once( MYDIR."/../etc/servercheck.conf" );
require_once( MYDIR."/../lib/class.servicetest.inc" );
if ( $mytest = new SERVICETEST( LOGFILE, TEMPFILE ) ) {
foreach ($servers as $servers_key => $item) {
$mytest->test($item);
}
$mytest->destruct();
}
?>
Code: Select all
$servers[] = array(
'server' => 'mx00.example.com',
'ip' => '123.123.123.123',
'describtion' => 'SMTP eMail',
'protocol' => 'smtp',
'port' => 25,
'tos' => "",
'user' => "user",
'password' => "geheim ;-)",
'cycle' => "5",
'active' => true,
'visible' => true,
'fail_inform_mail' => 600,
'fail_inform_sms' => 600,
'inform_mail' => "user@example.com",
'inform_sms' => "0123456789@mailtosms.example.com",
'inform_mail_returned' => true,
'inform_sms_returned' => false,
);
-
majortermi
- Userprojekt

- Posts: 916
- Joined: 2002-06-17 16:09
Re: Parallele Befehlsausführung mit PHP?
Meines Wissens unterstützt PHP kein Multithreading.
Du kannst ja Java verwenden. Pass dann aber auf, dass deine Anwendung thread-safe ist!!!
Du kannst ja Java verwenden. Pass dann aber auf, dass deine Anwendung thread-safe ist!!!
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
Warum man sich an diese Reihenfolge halten sollte...
Re: Parallele Befehlsausführung mit PHP?
rekursiv heißt das sich eine funktion selber aufrufen kann.
hat aber nichts mit multithreading zu tun.
generell läuft in PHP4 das script von oben nach unten ab. du möchtest jetzt jedoch ein neben-thread eröffnen, der nebenher noch weiterläuft und parallel weiterarbeitet. Das geht in PHP nicht.
du könntest das PHP script aber öfters starten so dass mehrere scripte gleichzeitig dass dann machen. musste nur über z.b. ne datenbank das regeln das se sich net in die quere kommen.
hat aber nichts mit multithreading zu tun.
generell läuft in PHP4 das script von oben nach unten ab. du möchtest jetzt jedoch ein neben-thread eröffnen, der nebenher noch weiterläuft und parallel weiterarbeitet. Das geht in PHP nicht.
du könntest das PHP script aber öfters starten so dass mehrere scripte gleichzeitig dass dann machen. musste nur über z.b. ne datenbank das regeln das se sich net in die quere kommen.