framework/mutex/PgsqlMutex.php
protected function acquireLock($name, $timeout = 0)
    {
        list($key1, $key2) = $this->getKeysFromName($name);

        return $this->retryAcquire($timeout, function () use ($key1, $key2) {
            return $this->db->useMaster(function ($db) use ($key1, $key2) {
                /** @var \yii\db\Connection $db */
                return (bool) $db->createCommand(
                    'SELECT pg_try_advisory_lock(:key1, :key2)',
                    [':key1' => $key1, ':key2' => $key2]
                )->queryScalar();
            });
        });
    }
protected function acquireLock($name, $timeout = 0)
    {
        list($key1, $key2) = $this->getKeysFromName($name);

        return $this->retryAcquire($timeout, function () use ($key1, $key2) {
            return $this->db->useMaster(function ($db) use ($key1, $key2) {
                /** @var \yii\db\Connection $db */
                return (bool) $db->createCommand(
                    'SELECT pg_try_advisory_lock(:key1, :key2)',
                    [':key1' => $key1, ':key2' => $key2]
                )->queryScalar();
            });
        });
    }
protected function acquireLock ( $ name , $ timeout = 0 ) { list ( $ key1 , $ key2 ) = $ this -> getKeysFromName ( $ name ) ; return $ this -> retryAcquire ( $ timeout , function ( ) use ( $ key1 , $ key2 ) { return $ this -> db -> useMaster ( function ( $ db ) use ( $ key1 , $ key2 ) { /** @var \yii\db\Connection $db */ return ( bool ) $ db -> createCommand ( 'SELECT pg_try_advisory_lock(:key1, :key2)' , [ ':key1' => $ key1 , ':key2' => $ key2 ] ) -> queryScalar ( ) ; } ) ; } ) ; }
Acquires lock by given name.
@param string $name of the lock to be acquired.
@param int $timeout time (in seconds) to wait for lock to become released.
@return bool acquiring result.
@see http://www.postgresql.org/docs/9.0/static/functions-admin.html
Acquires lock by given name .