2017-01-10 3 views
1

Bonjour à tous Je rencontre des problèmes sur mon pheanstalk désolé, c'est la première fois que je l'utilise. Mon projet implique une sauvegarde de 5000 entrées le php quand je travaille sur obtient 502 en raison de la demande de trafic. Donc ma solution à ceux-ci est d'utiliser un pheanstalk sur le processus ici est mon code ci-dessous qui est correct. J'ai installé le haricot sur le serveur.Pheanstalk queueng liste réserve PHP

require("vendor/autoload.php"); 
use Pheanstalk\Pheanstalk; 
$pheanstalk = new Pheanstalk('127.0.0.1'); 

#producer 
$put = $pheanstalk->useTube("ashimatube".date("His")) 
->put(json_encode(array("test"=>date("Yhs")))); 

#worker 
$job = $pheanstalk->watch("ashimatube".date("His")) 
->ignore("default")->reserve(); 
+0

Où avez-vous gardé le client Pheanstalk PHP? Et obtenez-vous des erreurs/avertissements? –

Répondre

1

Beanstalk

Beanstalk utilisé Facebook développé par Philotic, Inc pour améliorer le temps de réponse pour les causes sur l'application Facebook (avec plus de 10 millions d'utilisateurs). Beanstalk a réduit le temps de réponse moyen pour les pages les plus courantes à une infime fraction de l'original, améliorant ainsi considérablement l'expérience de l'utilisateur.

Voici l'échantillon pour Codeigniter

  1. Télécharger Pheastalk de here.

Pheastalk est un client de PHP pour la file d'attente beanstalkd.

  1. Ajouter dossier Pheanstalk intérieur application/libraries.

  2. Créer pheanstalk.php sous application/config.

  3. Ajoutez le code suivant.

    <?php 
    
        if (!defined('BASEPATH')) 
        exit('No direct script access allowed'); 
    
        $config['ip'] = '192.168.0.2'; // Example IP, Enter your IP 
        $config['port'] = 11300; 
    
  4. Créer Pheanstalk.php (P est en majuscules) sous application/libraries.

  5. Ajoutez le code suivant.

    if (!defined('BASEPATH')) 
        exit('No direct script access allowed'); 
    
    /** Pheanstalk root directory */ 
    if (!defined('PHEANSTALK_ROOT')) 
    { 
         define('PHEANSTALK_ROOT', dirname(__FILE__) . '/'); 
         require(PHEANSTALK_ROOT . 'pheanstalk/pheanstalk_init.php'); 
    } 
    
    class Pheanstalk extends Pheanstalk_Pheanstalk 
    { 
    
        public function __construct($params) 
        { 
         parent::__construct($params['ip'], $params['port']); 
        } 
    } 
    
  6. Créez un contrôleur comme celui-ci.

    Class Test extends CI_Controller 
    { 
    
        public function index() 
        { 
        $this->load->library('pheanstalk'); 
        var_dump($this->pheanstalk->listTubes()); 
        $this->pheanstalk->useTube('testtube')->put("job payload goes here\n"); 
    
        $job = $this->pheanstalk 
          ->watch('testtube') 
          ->ignore('default') 
          ->reserve(); 
    
        echo $job->getData(); 
    
        $this->pheanstalk->delete($job); 
    } } 
    

Essayez juste de cette façon.