codeigniter — резерв списка очередей Pheanstalk Переполнение стека

Привет всем, у меня возникли проблемы с моим pheanstalk извините, я впервые использую это. Мой проект включает в себя одно сохранение 5000 записей, когда php, когда я работаю, получает 502 из-за запроса трафика. Поэтому я решил использовать pheanstalk для процесса, вот мой код ниже, что нормально. Я установил 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();

1

Решение

Beanstalk используется в Facebook, разработанный Philotic, Inc улучшает время отклика для приложения Причины на Facebook (более 10 миллионов пользователей). Beanstalk уменьшил среднее время отклика для наиболее распространенных страниц до крошечной доли оригинала, что значительно улучшило взаимодействие с пользователем.

Вот образец для Codeigniter

  1. Скачать Pheastalk от Вот.

Pheastalk PHP-клиент для очереди beanstalkd

  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 (в заглавных буквах) под 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);
    } }
    

Просто попробуйте этот способ.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]