通过MySQL Client用命令:show processlist发现数据库连接数量一直居高不下,轻轻松松就上2k+的连接。通过读Rails框架的connection_pool.rb文件代码,发现在各模型中用establish_connection连接数据库会造成很大的问题。文件中类ConnectionHandler的establish_connection方法代码如下:Ruby代码 def establish_connection(name, spec) @connection_pools[name] = ConnectionAdapters::ConnectionPool.new(spec) end def establish_connection(name, spec)
@connection_pools[name] = ConnectionAdapters::ConnectionPool.new(spec)
k = (j + 13) / 27while k <= 10
k = k + 1
i = 3 * k - 1
end
上面的Ruby代码使用了while循环结构来重写伪代码段。 while循环执行重复操作直到指定的条件不再满足为止。在这个例子中,循环将执行直到k的值不再小于或等于10。