本文整理匯總了PHP中LBFactory::commitAndWaitForReplication方法的典型用法代碼示例。如果您正苦於以下問題:PHP LBFactory::commitAndWaitForReplication方法的具體用法?PHP LBFactory::commitAndWaitForReplication怎麽用?PHP LBFactory::commitAndWaitForReplication使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類LBFactory
的用法示例。
在下文中一共展示了LBFactory::commitAndWaitForReplication方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: notifyUpdatesForRevision
/**
* @param LBFactory $lbFactory
* @param WikiPage $page
* @param Revision $newRev
* @throws MWException
*/
protected function notifyUpdatesForRevision(LBFactory $lbFactory, WikiPage $page, Revision $newRev)
{
$config = RequestContext::getMain()->getConfig();
$title = $page->getTitle();
// Get the new revision
if (!$newRev->getContent()) {
return;
// deleted?
}
// Get the prior revision (the same for null edits)
if ($newRev->getParentId()) {
$oldRev = Revision::newFromId($newRev->getParentId(), Revision::READ_LATEST);
if (!$oldRev->getContent()) {
return;
// deleted?
}
} else {
$oldRev = null;
}
// Parse the new revision and get the categories
$categoryChanges = $this->getExplicitCategoriesChanges($title, $newRev, $oldRev);
list($categoryInserts, $categoryDeletes) = $categoryChanges;
if (!$categoryInserts && !$categoryDeletes) {
return;
// nothing to do
}
$catMembChange = new CategoryMembershipChange($title, $newRev);
$catMembChange->checkTemplateLinks();
$batchSize = $config->get('UpdateRowsPerQuery');
$insertCount = 0;
foreach ($categoryInserts as $categoryName) {
$categoryTitle = Title::makeTitle(NS_CATEGORY, $categoryName);
$catMembChange->triggerCategoryAddedNotification($categoryTitle);
if ($insertCount++ && $insertCount % $batchSize == 0) {
$lbFactory->commitAndWaitForReplication(__METHOD__, $this->ticket);
}
}
foreach ($categoryDeletes as $categoryName) {
$categoryTitle = Title::makeTitle(NS_CATEGORY, $categoryName);
$catMembChange->triggerCategoryRemovedNotification($categoryTitle);
if ($insertCount++ && $insertCount++ % $batchSize == 0) {
$lbFactory->commitAndWaitForReplication(__METHOD__, $this->ticket);
}
}
}