本文整理匯總了PHP中IDatabase::getScopedLockAndFlush方法的典型用法代碼示例。如果您正苦於以下問題:PHP IDatabase::getScopedLockAndFlush方法的具體用法?PHP IDatabase::getScopedLockAndFlush怎麽用?PHP IDatabase::getScopedLockAndFlush使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類IDatabase
的用法示例。
在下文中一共展示了IDatabase::getScopedLockAndFlush方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: badLockingMethodExplicit
private function badLockingMethodExplicit(IDatabase $db)
{
$lock = $db->getScopedLockAndFlush('meow', __METHOD__, 1);
$db->begin(__METHOD__);
throw new RunTimeException("Uh oh!");
}
示例2: acquirePageLock
/**
* Acquire a lock for performing link table updates for a page on a DB
*
* @param IDatabase $dbw
* @param integer $pageId
* @param string $why One of (job, atomicity)
* @return ScopedCallback
* @throws RuntimeException
* @since 1.27
*/
public static function acquirePageLock(IDatabase $dbw, $pageId, $why = 'atomicity')
{
$key = "LinksUpdate:{$why}:pageid:{$pageId}";
$scopedLock = $dbw->getScopedLockAndFlush($key, __METHOD__, 15);
if (!$scopedLock) {
throw new RuntimeException("Could not acquire lock '{$key}'.");
}
return $scopedLock;
}
示例3: acquirePageLock
/**
* Acquire a lock for performing link table updates for a page on a DB
*
* @param IDatabase $dbw
* @param integer $pageId
* @return ScopedCallback|null Returns null on failure
* @throws RuntimeException
* @since 1.27
*/
public static function acquirePageLock(IDatabase $dbw, $pageId)
{
$scopedLock = $dbw->getScopedLockAndFlush("LinksUpdate:pageid:{$pageId}", __METHOD__, 15);
if (!$scopedLock) {
throw new RuntimeException("Could not acquire lock on page #{$pageId}.");
}
return $scopedLock;
}