大家好我所有的麻烦我很抱歉这是我第一次使用这个。我的项目涉及一个5000条目的一次保存,当我工作时,由于流量请求获得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();
答案 0 :(得分:1)
以下是Codeigniter的示例
Pheastalk 是beanstalkd队列的PHP客户端。
在application/libraries
内添加 Pheanstalk 文件夹。
在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;
在application/libraries
下创建Pheanstalk.php(P为大写字母)。
添加以下代码。
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);
} }
试试这个。