作者:xinlang138438 | 来源:互联网 | 2024-10-22 11:45
我用thinkphp框架在命令行模式下写了一个死循环我要保证我的逻辑操作永远不会中断而且每秒执行一次代码如下1234567891011121314151617181920212223242526272
我用thinkphp框架
在命令行模式下
写了一个死循环
我要保证我的逻辑操作
永远不会中断
而且每秒执行一次
代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| public function index()
{
$redis = new \Redis\Redis();//实例化redis
$redis_res = $redis -> ping();
if ($redis_res !== 'PONG') {
error_log('/tmp/1.log', $e->getMessage());
}
$abb = M('abb');//实例化
$i = 0;
while(true) {
//用来处理链接数据库超时 方法1
$i++;
if ($i >= 1000) {
$i = 0;
$abb = M('abb');
}
//////////逻辑操作///////////
try {
$result1 = $abb->add(array('a' => 'abc'));//操作数据库
} catch (\Exception $e) {
error_log('/tmp/2.log', $e->getMessage());
}
try {
$result2 = $redis -> Lpush('abc',$result1);//操作redis
} catch (\Exception $e) {
error_log('/tmp/3.log', $e->getMessage());
}
//////////逻辑操作///////////
sleep(1);
}
} |
但是有一个问题 我这个链接数据库时间过长会MySQL会自动断掉
2006:MySQL server has gone away
wait_timeout默认是8小时,
去增加wait_timeout 也不是长久之计,
所以我想执行1000次时重新M('abb') ,但好像还是不行,重新M('abb')不是重新练=链接数据库吗?
有没有其他解决方案?
如何保证我的链接数据库不会中断?
redis操作有链接超时的问题吗?
求指导!