jeffy2009520 2014-11-04 17:33:25 8975次浏览 3条回复 1 0 0

谁用 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计划任务

想了很多解决方案,优化了程序,但是还是经常有这种情况出现

之前导数据也是写的死循环都没有出现过这种错误(没有用队列),这次死循环执行老是报错

您需要登录后才可以回复。登录 | 立即注册