我必须运行一个file.rb,每秒创建一个微任务(将qwuery插入到数据库中)。保持ruby进程永久运行的最佳方式是什么?
我已经使用了一个for循环(1..10^9),但我的CPU使用率超过警报!那么不浪费所有CPU的最佳方式是什么?
我必须运行一个file.rb,每秒创建一个微任务(将qwuery插入到数据库中)。保持ruby进程永久运行的最佳方式是什么?
我已经使用了一个for循环(1..10^9),但我的CPU使用率超过警报!那么不浪费所有CPU的最佳方式是什么?
永远运行的最简单的方式就是循环
loop do
run_db_insert
sleep 1
end
如果你保持1 Hz的频率,注意分贝插入需要一定的时间,所以一秒是非常重要的睡眠意味着每个周期需要dbtime + 1秒,并且你会稳步落后。如果数据库交互可靠地少于一秒,则可以修改睡眠以调整下一个秒的时间间隔。
loop do
run_db_insert
sleep(Time.now.to_f.ceil - Time.now.to_f)
end
与sleep
命令的简单循环应执行此项工作。
while true
# do stuff here
sleep 1 # wait one second
end
因此,您的查询插入数据库泄漏! – devnull