diff options
author | Giuseppe Bilotta <giuseppe.bilotta@gmail.com> | 2006-06-08 22:37:38 +0000 |
---|---|---|
committer | Giuseppe Bilotta <giuseppe.bilotta@gmail.com> | 2006-06-08 22:37:38 +0000 |
commit | 5b55193a4263464efd71279dddf57a1a14dd22e4 (patch) | |
tree | ce99b049921361871e7368b2c767ef07c678f424 | |
parent | 6f7bac545f3a39d0f73b77a84d104647d20c4b6d (diff) |
Do environment checkpointing and log cleanups on save. This should prevent log file proliferation (previous commit [192] only cleaned up the logfiles on quit)
-rw-r--r-- | lib/rbot/dbhash.rb | 26 | ||||
-rw-r--r-- | lib/rbot/ircbot.rb | 1 |
2 files changed, 21 insertions, 6 deletions
diff --git a/lib/rbot/dbhash.rb b/lib/rbot/dbhash.rb index ed5b9e61..e687cebf 100644 --- a/lib/rbot/dbhash.rb +++ b/lib/rbot/dbhash.rb @@ -112,13 +112,14 @@ module Irc return @@env.open_db(BDB::CIBtree, name, nil, "r+", 0600) end - def DBTree.cleanup_env() + def DBTree.cleanup_logs() + begin + debug "DBTree: checkpointing ..." + @@env.checkpoint + rescue => e + debug "Failed: #{e}" + end begin - debug "DBTree: checking transactions ..." - has_active_txn = @@env.txn_stat["st_nactive"] > 0 - if has_active_txn - debug "DBTree: WARNING: not all transactions completed!" - end debug "DBTree: flushing log ..." @@env.log_flush logs = @@env.log_archive(BDB::ARCH_ABS) @@ -126,6 +127,19 @@ module Irc logs.each { |log| File.delete(log) } + rescue => e + debug "Failed: #{e}" + end + end + + def DBTree.cleanup_env() + begin + debug "DBTree: checking transactions ..." + has_active_txn = @@env.txn_stat["st_nactive"] > 0 + if has_active_txn + debug "DBTree: WARNING: not all transactions completed!" + end + DBTree.cleanup_logs debug "DBTree: closing environment #{@@env}" path = @@env.home @@env.close diff --git a/lib/rbot/ircbot.rb b/lib/rbot/ircbot.rb index 9c682949..e8806254 100644 --- a/lib/rbot/ircbot.rb +++ b/lib/rbot/ircbot.rb @@ -511,6 +511,7 @@ class IrcBot @keywords.save @auth.save @plugins.save + DBTree.cleanup_logs end # call the rescan method for the bot's lang, keywords and all plugins |