PHP code example of ryancco / forker
1. Go to this page and download the library: Download ryancco/forker library. Choose the download type require. 2. Extract the ZIP file and open the index.php. 3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ryancco / forker example snippets
yancco\forker\JobInterface;
use ryancco\forker\WorkerDaemon;
declare(ticks=1); // PHP <= 5.6.*
class TestJob implements JobInterface
{
/** @var array $loopsCounted */
private $loopsCounted = array();
/**
* Entry point for each child worker
*/
public function __invoke()
{
echo "New child spawned! [PID " . getmypid() . "]\n";
$this->countTo(5);
}
public function countTo($max = 5)
{
for ($i = 1; $i <= $max; $i++) {
echo $this->formatOutput($i);
sleep(10);
}
$this->loopsCounted[$max] += 1;
}
private function formatOutput($loops)
{
return "Pass #" . $loops . " [PID " . getmypid() . "]\n";
}
private function recordLoopsCounted()
{
try {
$queue = new Queue(); // Does not exist
} catch (Exception $e) {
exit("Unable to instantiate new Queue: " . $e->getMessage());
}
$queue->push($this->loopsCounted);
}
/**
* Exit point for each child worker
* Make all of your garbage collection and stats recording calls here
*/
public function __destruct()
{
echo "__destruct() [PID " . getmypid() . "]\n";
$this->recordLoopsCounted();
}
}
$wd = new WorkerDaemon(5, 300);
$wd->executeJob(new TestJob());