毎秒マイクロタスク (クエリをデータベースに挿入する) を作成する file.rb を実行する必要があります。
for ループ (1..10^9) を使用しましたが、CPU 使用率超過のアラートが表示されました。では、すべての CPU を無駄にしない最善の方法は何でしょうか?
毎秒マイクロタスク (クエリをデータベースに挿入する) を作成する file.rb を実行する必要があります。
for ループ (1..10^9) を使用しましたが、CPU 使用率超過のアラートが表示されました。では、すべての CPU を無駄にしない最善の方法は何でしょうか?
永遠に実行する最も簡単な方法は、単にループすることです
loop do
run_db_insert
sleep 1
end
1 Hz レートを維持することが重要な場合、db 挿入にはある程度の時間がかかることに注意してください。したがって、1 秒のスリープは、各サイクルに dbtime+1 秒かかることを意味し、着実に遅れをとることになります。db インタラクションが確実に 1 秒未満である場合は、スリープを変更して、次の 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