Class: DeploymentTask::LockAdapters::PostgresqlAdapter
- Inherits:
-
Base
- Object
- Base
- DeploymentTask::LockAdapters::PostgresqlAdapter
show all
- Defined in:
- lib/deployment_task/lock_adapters/postgresql_adapter.rb
Instance Method Summary
collapse
Methods inherited from Base
detect_database_adapter, resolve, #with_lock
Instance Method Details
#acquire(version) ⇒ Object
8
9
10
11
12
13
14
15
16
17
|
# File 'lib/deployment_task/lock_adapters/postgresql_adapter.rb', line 8
def acquire(version)
acquired = connection.select_value(
"SELECT pg_try_advisory_lock(#{advisory_lock_id(version)})"
)
unless acquired
raise LockNotAcquiredError,
"Could not acquire lock for task #{version}. " \
"Another process may be executing it."
end
end
|
#release(version) ⇒ Object
19
20
21
22
23
|
# File 'lib/deployment_task/lock_adapters/postgresql_adapter.rb', line 19
def release(version)
connection.select_value(
"SELECT pg_advisory_unlock(#{advisory_lock_id(version)})"
)
end
|