Привет всем, у меня возникли проблемы с моим 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();
Beanstalk используется в Facebook, разработанный Philotic, Inc улучшает время отклика для приложения Причины на Facebook (более 10 миллионов пользователей). Beanstalk уменьшил среднее время отклика для наиболее распространенных страниц до крошечной доли оригинала, что значительно улучшило взаимодействие с пользователем.
Вот образец для Codeigniter
Pheastalk PHP-клиент для очереди beanstalkd
добавлять Pheanstalk папка внутри application/libraries
,
Создайте pheanstalk.php
под application/config
,
Добавьте следующий код.
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
$config['ip'] = '192.168.0.2'; // Example IP, Enter your IP
$config['port'] = 11300;
Создайте Pheanstalk.php (в заглавных буквах) под application/libraries
,
Добавьте следующий код.
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']);
}
}
Создайте такой контроллер.
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);
} }
Просто попробуйте этот способ.
Других решений пока нет …