Parallele Befehlsausführung mit PHP?

Bash, Shell, PHP, Python, Perl, CGI
jp
Posts: 91
Joined: 2002-07-31 13:27
Location: München

Parallele Befehlsausführung mit PHP?

Post by jp »

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?
darkspirit
Posts: 553
Joined: 2002-10-05 16:39
Location: D'dorf

Re: Parallele Befehlsausführung mit PHP?

Post by darkspirit »

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..
jp
Posts: 91
Joined: 2002-07-31 13:27
Location: München

Re: Parallele Befehlsausführung mit PHP?

Post by jp »

hm also ich habe hier folgenden code:

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();
}
?>
$servers ist ein multidimensionales Array, das mehrere der folgenden art von einträgen enthält:

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,
);
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?
majortermi
Userprojekt
Userprojekt
Posts: 916
Joined: 2002-06-17 16:09

Re: Parallele Befehlsausführung mit PHP?

Post by majortermi »

Meines Wissens unterstützt PHP kein Multithreading.
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...
[monk]
Posts: 163
Joined: 2002-08-09 17:31
Location: Ulm

Re: Parallele Befehlsausführung mit PHP?

Post by [monk] »

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.