我遇到此代码的问题,并希望有人可以提供帮助。
基本上我们遇到一个问题,即当这个脚本按顺序运行数百次时,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)
答案 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->
。