<?php 
 
// Include PowerProcess 
require_once '../PowerProcess.class.php'; 
 
// Instance new PowerProcess class with 2 threads, 30 second timeout,  
// as daemon with logging to daemonlog.txt 
$pp = new PowerProcess(2,30,true,'daemonlog.txt',false); 
 
// Write some stuff to the log file 
$pp->Log("Greetings! I am a Daemon example!"); 
$pp->Log("My PID is " . $pp->GetPID()); 
$pp->Log("I am going to write some stuff to a file now."); 
 
// Echo this so the user can see that the daemon is starting 
// The echo lines will go to STOUT instead of the log file 
echo "Daemon started with 2 threads...\n"; 
echo "You can run `tail -f daemonlog.txt` to follow my progress...\n"; 
 
// Generate some fake data 
$data = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); 
 
// Start the control loop 
while ($pp->RunControlCode()) { 
    // Check for data in the queue 
    if (count($data)) { 
        // Check if we can spawn 
        if ($pp->SpawnReady()) { 
            // Spawn a new thread 
            $pp->SpawnThread('Thread-'.array_shift($data)); 
        } 
    } else { 
        // No more data - shutdown 
        $pp->Shutdown(); 
        $pp->Log("The daemon is now exiting..."); 
    } 
} 
 
// Start the thread code 
if ($pp->RunThreadCode()) { 
    // Just write some stuff and sleep 
    $pp->Log("This is " . $pp->WhoAmI() . " just saying hello world! Now to sleep for 5 seconds"); 
    sleep(5); 
}
 
 |