Class: EY::Snaplock::Database::MySQL
- Inherits:
-
Object
- Object
- EY::Snaplock::Database::MySQL
- Defined in:
- lib/ey_snaplock/database/mysql.rb
Instance Method Summary collapse
-
#initialize(uri) ⇒ MySQL
constructor
A new instance of MySQL.
- #lock_filename ⇒ Object
- #with_lock(timeout) ⇒ Object
Constructor Details
#initialize(uri) ⇒ MySQL
Returns a new instance of MySQL.
5 6 7 |
# File 'lib/ey_snaplock/database/mysql.rb', line 5 def initialize(uri) @mysql = mysql_command(uri) end |
Instance Method Details
#lock_filename ⇒ Object
9 10 11 |
# File 'lib/ey_snaplock/database/mysql.rb', line 9 def lock_filename ENV["MYSQL_LOCK_FILENAME"] || "/var/run/ey_snaplock_mysql.pid" end |
#with_lock(timeout) ⇒ Object
13 14 15 16 17 18 19 20 21 |
# File 'lib/ey_snaplock/database/mysql.rb', line 13 def with_lock(timeout) acquire_lock_within_timeout(timeout) write_master_status(ENV["MASTER_STATUS_FILE"] || "/db/mysql/.snapshot_backup_master_status.txt") yield rescue Timeout::Error lock_timeout(timeout) ensure release_lock end |