Differences Between: [Versions 39 and 402] [Versions 402 and 403]
Postgres advisory locking factory.
Copyright: | Damyon Wiese 2013 |
License: | http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later |
File Size: | 233 lines (8 kb) |
Included or required: | 0 times |
Referenced: | 0 times |
Includes or requires: | 0 files |
postgres_lock_factory:: (11 methods):
get_unique_db_instance_id()
__construct()
is_available()
supports_timeout()
supports_auto_release()
supports_recursion()
get_index_from_key()
get_lock()
release_lock()
extend_lock()
auto_release()
Class: postgres_lock_factory - X-Ref
Postgres advisory locking factory.get_unique_db_instance_id() X-Ref |
Calculate a unique instance id based on the database name and prefix. return: int. |
__construct($type) X-Ref |
Almighty constructor. param: string $type - Used to prefix lock keys. |
is_available() X-Ref |
Is available. return: boolean - True if this lock type is available in this environment. |
supports_timeout() X-Ref |
Return information about the blocking behaviour of the lock type on this platform. return: boolean - Defer to the DB driver. |
supports_auto_release() X-Ref |
Will this lock type will be automatically released when a process ends. return: boolean - Via shutdown handler. |
supports_recursion() X-Ref |
Multiple locks for the same resource can NOT be held by a single process. return: boolean - false. |
get_index_from_key($key) X-Ref |
This function generates the unique index for a specific lock key using a sha1 prefix converted to decimal. param: string $key return: int |
get_lock($resource, $timeout, $maxlifetime = 86400) X-Ref |
Create and get a lock param: string $resource - The identifier for the lock. Should use frankenstyle prefix. param: int $timeout - The number of seconds to wait for a lock before giving up. param: int $maxlifetime - Unused by this lock type. return: boolean - true if a lock was obtained. |
release_lock(lock $lock) X-Ref |
Release a lock that was previously obtained with @lock. param: lock $lock - a lock obtained from this factory. return: boolean - true if the lock is no longer held (including if it was never held). |
extend_lock(lock $lock, $maxlifetime = 86400) X-Ref |
Extend a lock that was previously obtained with @lock. param: lock $lock - a lock obtained from this factory. param: int $maxlifetime - the new lifetime for the lock (in seconds). return: boolean - true if the lock was extended. |
auto_release() X-Ref |
Auto release any open locks on shutdown. This is required, because we may be using persistent DB connections. |