本文整理汇总了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;
}