1

こんにちは pheanstalk で問題が発生しています。申し訳ありませんが、これを使用するのはこれが初めてです。私のプロジェクトでは、5000 エントリを 1 回保存する必要があり、トラフィック リクエストが原因で php が 502 を取得します。サーバーにBeanstalkをインストールしました。

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

1 に答える 1

1

豆の木

Philotic , Incによって開発された Facebook で使用されるBeanstalkは、Facebook アプリケーション (1,000 万人以上のユーザー) の原因に対する応答時間を改善します。Beanstalk は、最も一般的なページの平均応答時間を元のごく一部に短縮し、ユーザー エクスペリエンスを大幅に改善しました。

これがCodeigniterのサンプルです

  1. ここからPheastalkをダウンロードします。

Pheastalkは、beanstalkd キューの PHP クライアントです。

  1. の中にPheanstalkフォルダを追加しますapplication/libraries

  2. pheanstalk.phpの下に作成しますapplication/config

  3. 次のコードを追加します。

    <?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. の下に Pheanstalk.php (P は大文字) を作成しますapplication/libraries

  5. 次のコードを追加します。

     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. このようなコントローラーを作成します。

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

この方法を試してみてください。

于 2017-01-10T06:30:03.877 に答える