Comment Construire un PHP Système de File d'attente

J'ai dû construire un PHP Système de File d'attente, et trouvé que c' brillant article
http://squirrelshaterobots.com/programming/php/building-a-queue-server-in-php-part-1-understanding-the-project et je l'ai utilisé pour créer un PHP système de file d'attente, il est très facile à configurer et à utiliser.

Ci-dessous est le code de la queue.php, exécuter à partir du shell (mastic ou somesuch).

<?PHP 

//. set this constant to false if we ever need to debug
//. the application in a terminal.
define('QUEUESERVER_FORK', true);

////////fork into a background process ////////
if(QUEUESERVER_FORK){    
    $pid = pcntl_fork(); 
    if($pid === -1) die('error: unable to fork.');    
    else if($pid) exit(0);        
    posix_setsid();    
    sleep(1);        
    ob_start();
}

$queue = array();

////////setup our named pipe ////////
$pipefile = '/tmp/queueserver-input';

if(file_exists($pipefile))    
    if(!unlink($pipefile))         
        die('unable to remove stale file');

umask(0);


if(!posix_mkfifo($pipefile, 0666))    
    die('unable to create named pipe');

$pipe = fopen($pipefile,'r+');

if(!$pipe) die('unable to open the named pipe');

stream_set_blocking($pipe, false);

////////process the queue ////////
while(1){    

    while($input = trim(fgets($pipe))){        
        stream_set_blocking($pipe, false);        
        $queue[] = $input;    
    }    

    $job = current($queue);    
    $jobkey = key($queue);    

    if($job){        
        echo 'processing job ', $job, PHP_EOL;                
        process($job);                
        next($queue);        
        unset($job, $queue[$jobkey]);            
    }else{        
        echo 'no jobs to do - waiting...', PHP_EOL;        
        stream_set_blocking($pipe, true);    
    }        

    if(QUEUESERVER_FORK) ob_clean();

}

?>

La partie la plus difficile a été d'obtenir les pcntl fonctions pour travailler sur mon serveur.

Ma question est "Comment puis-je obtenir le travail pour démarrer automatiquement lorsque/si le serveur a redémarrer?"


Comme indiqué dans les commentaires, édité lien brisé et a souligné l'excellente web archive pour la postérité.

Ce qui, exactement, est votre question?
Comment puis-je obtenir le travail pour démarrer automatiquement lorsque/si le serveur a pour redémarrer?
vous pouvez modifier le serveur de script de démarrage pour ce faire, ou vous pouvez ajouter un script qui rendra compte de l'état de script/server et le deuxième script pour redémarrer une tâche, puis de les utiliser à partir d'hôte local ou distant au serveur de moniteur/redémarrer le travail (avec une tâche cron)
Ne vous arrive d'avoir le brillant article de la page sauvé? Le site semble être en panne et c'était exactement ce que j'ai personnellement besoin 🙂
Il a ÉTÉ un brillant article - j'ai un signet pour une bonne raison. Je pense que ceci c'est notre meilleure option maintenant janvier 2016 œuvres.

OriginalL'auteur Folding Circles | 2013-01-04