嗨,我的 pheanstalk 遇到了问题,对不起,这是我第一次使用它。我的项目涉及一次保存 5000 个条目,当我工作时,由于流量请求,php 会得到 502。所以我的解决方案是在过程中使用 pheanstalk 这是我下面的代码,没关系。我已经在服务器上安装了豆茎。
require("vendor/autoload.php");
use PheanstalkPheanstalk;
$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
由Philotic,Inc开发的Facebook中使用的Beanstalk,用于改善Facebook应用程序(拥有超过1000万用户)上Causes的响应时间。Beanstalk将最常见页面的平均响应时间减少到原始页面的一小部分,从而显着改善了用户体验。
这是代码点火器的示例
- 从这里下载Pheastalk。
Pheastalk是一个用于betalkd队列的PHP客户端。
-
在
application/libraries
中添加 Pheanstalk 文件夹。 -
在
application/config
下创建pheanstalk.php
。 -
添加以下代码。
<?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 heren"); $job = $this->pheanstalk ->watch('testtube') ->ignore('default') ->reserve(); echo $job->getData(); $this->pheanstalk->delete($job); } }
试试这种方式。