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());