Yii 计划任务队列更新出现 MySQL gone away [ 求助交流 ]
谁用 Yii 跑计划任务更新数据的时候出现错误
PHP Error[2]: PDOStatement::execute(): MySQL server has gone away
用的张宴的sqs队列
Yii 计划任务代码
$this->queue_name = 'buy_site';
$queue_config = Yii::app()->params['params_queue']['queue_config'];
$httpsqs = new httpsqs($queue_config['host'], $queue_config['port'], $queue_config['auth'], $queue_config['charset']);
while (true) {
$result = $httpsqs->gets($this->queue_name);
$pos = $result["pos"]; //当前队列消息的读取位置点
$data = $result["data"]; //当前队列消息的内容
if ($data != "HTTPSQS_GET_END" && $data != "HTTPSQS_ERROR" && is_string($data)) {
这里执行数据库的更新操作
} else {
sleep(1); //暂停1秒钟后,再次循环
}
}
在服务器用nohup执行这个yii计划任务
想了很多解决方案,优化了程序,但是还是经常有这种情况出现
之前导数据也是写的死循环都没有出现过这种错误(没有用队列),这次死循环执行老是报错
共 3 条回复
jeffy2009520
注册时间:2012-02-23
最后登录:2015-04-17
在线时长:10小时57分
最后登录:2015-04-17
在线时长:10小时57分
- 粉丝3
- 金钱175
- 威望0
- 积分275