Module: MongoOplogBackup::Lockable
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(base) ⇒ Object
6 7 8 |
# File 'lib/mongo_oplog_backup/lock.rb', line 6 def self.included(base) base.extend(self) end |
Instance Method Details
#lock(lockname, &block) ⇒ Object
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/mongo_oplog_backup/lock.rb', line 10 def lock(lockname, &block) File.open(lockname, File::RDWR|File::CREAT, 0644) do |file| # Get a non-blocking lock got_lock = file.flock(File::LOCK_EX|File::LOCK_NB) if got_lock == false raise LockError, "Failed to acquire lock - another backup may be busy" end yield end end |