Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL中的休眠连接_Mysql_Ruby_Rubygems - Fatal编程技术网

MySQL中的休眠连接

MySQL中的休眠连接,mysql,ruby,rubygems,Mysql,Ruby,Rubygems,我正在运行以下代码来计算我们应用程序的DAU(每日活动用户): EM.run do db = EventMachine::Synchrony::ConnectionPool.new(size: numDays) do Mysql2::EM::Client.new( :host => config[:server], :username => config[:

我正在运行以下代码来计算我们应用程序的DAU(每日活动用户):

        EM.run do
            db = EventMachine::Synchrony::ConnectionPool.new(size: numDays) do
            Mysql2::EM::Client.new(
                :host => config[:server],
                :username => config[:user],
                :password => config[:pwd],
                :database => config[:db_name],
                :connect_timeout => 60,
                :cache_rows => false
                )
            end
            slice.to_a.each do
                |day|
                defer = db.aquery("BIG QUERY HERE")

                defer.callback do |obj|
                    puts "#{day} inserted into database"
                    a += 1
                    EM.stop unless a < numDays
                end
            end
        end

start = Time.now
Date.parse(config[:from]).upto(Date.parse(config[:to])).each_slice(config[:slice]) do
    |slice|
    em_dau(config,slice)
    puts "Total time elapsed: #{Time.now-start}"
end
EM.run do
db=EventMachine::Synchrony::ConnectionPool.new(大小:numDays)do
Mysql2::EM::Client.new(
:host=>config[:server],
:username=>config[:user],
:password=>config[:pwd],
:database=>config[:db_name],
:连接超时=>60,
:cache_rows=>false
)
结束
每个人都做切片
|一天|
defer=db.aquery(“此处的大查询”)
延迟回调do | obj|
将“#{day}插入数据库”
a+=1
EM.除非a
这样做的目的是,比如说,获取一年的用户数据,并将其分为N个大小的数据块,在每一天异步执行查询,返回循环并发送另一个N个数据块,重复此过程,直到覆盖完整的数据集。“问题”(用引号括起来,因为我不确定这是否真的是个问题)是,当脚本运行时,客户端建立的每个连接似乎都处于“睡眠”状态,直到整个脚本运行完毕。我假设ConnectionPool在管理db连接,但现在我想我需要做一些明确的管理。问题是我实际上不知道如何关闭事件循环中的连接。欢迎提出任何意见/建议。谢谢