这段代码有mySQL问题吗?

时间:2015-10-27 14:44:27

标签: php mysql

我遇到此代码的问题,并希望有人可以提供帮助。

基本上我们遇到一个问题,即当这个脚本按顺序运行数百次时,mySQL的连接不足。

https://gist.github.com/anthonyTS/b6c46d54ee8bf2d714b8

这是数据库类:

https://gist.github.com/anthonyTS/89f5a831e31d970fb5e1

这是我得到的错误:

#include "ex.h"

堆栈追踪:

extern "C" {
#include "ex.h"
}

beanstalk_check_monitoring_logs.php(188)

1 个答案:

答案 0 :(得分:0)

你应该把数据库初始化:

 $con = mysql_connect(DB_HOST, DB_USER, DB_PASS);
 mysql_select_db(DB_DATABASE);
 $DB = new DB(DB_HOST, DB_USER, DB_PASS, DB_DATABASE);

在你的上方:

$stalk = new Stalk(array(BEANSTALKD_SERVER, BEANSTALKD_PORT));

在脚本的顶部,只创建一次DB conncetion而不是循环while(true) - 这真是个坏主意: - )

因为你使用了一些奇怪的函数声明:

$stalk->background(function() {
   $tube = 'check-monitoring-logs';
   ...

您可以调用数据库实例,如:

$stalk->background(function() {
   global $DB;
   $tube = 'check-monitoring-logs';
   ...

并将DB::的所有来电替换为$DB->