20
20
final class PostgresAdvisoryLocker
21
21
{
22
22
/**
23
- * Acquire a transaction-level advisory lock with a configurable acquisition type and mode.
23
+ * Acquire a transaction-level advisory lock with configurable wait and access modes.
24
+ *
25
+ * TODO: Cover with tests
26
+ */
27
+ public function acquireTransactionLevelLockHandler (
28
+ PDO $ dbConnection ,
29
+ PostgresLockId $ postgresLockId ,
30
+ PostgresAdvisoryLockWaitModeEnum $ waitMode = PostgresAdvisoryLockWaitModeEnum::NonBlocking,
31
+ PostgresLockAccessModeEnum $ accessMode = PostgresLockAccessModeEnum::Exclusive,
32
+ ): AdvisoryLockTransactionLevel {
33
+ return new AdvisoryLockTransactionLevel (
34
+ wasAcquired: $ this ->acquireLock (
35
+ $ dbConnection ,
36
+ $ postgresLockId ,
37
+ PostgresAdvisoryLockLevelEnum::Transaction,
38
+ $ waitMode ,
39
+ $ accessMode ,
40
+ ),
41
+ );
42
+ }
43
+
44
+ /**
45
+ * Acquire a transaction-level advisory lock with configurable wait and access modes.
24
46
*/
25
47
public function acquireTransactionLevelLock (
26
48
PDO $ dbConnection ,
@@ -38,7 +60,7 @@ public function acquireTransactionLevelLock(
38
60
}
39
61
40
62
/**
41
- * Acquire a session-level advisory lock with a configurable wait & access modes.
63
+ * Acquire a session-level advisory lock with configurable wait and access modes.
42
64
*
43
65
* TODO: Write that transaction-level is recommended.
44
66
* TODO: Cover with tests
@@ -65,7 +87,7 @@ public function acquireSessionLevelLockHandler(
65
87
}
66
88
67
89
/**
68
- * Acquire a session-level advisory lock with a configurable wait & access modes.
90
+ * Acquire a session-level advisory lock with configurable wait and access modes.
69
91
*
70
92
* TODO: Write that transaction-level is recommended.
71
93
*/
0 commit comments