*/
use MediaWiki\MediaWikiServices;
use Wikimedia\ScopedCallback;
+use Wikimedia\Rdbms\IDatabase;
/**
* Update object handling the cleanup of links tables after a page was deleted.
class LinksDeletionUpdate extends DataUpdate implements EnqueueableDataUpdate {
/** @var WikiPage */
protected $page;
- /** @var integer */
+ /** @var int */
protected $pageId;
/** @var string */
protected $timestamp;
/**
* @param WikiPage $page Page we are updating
- * @param integer|null $pageId ID of the page we are updating [optional]
+ * @param int|null $pageId ID of the page we are updating [optional]
* @param string|null $timestamp TS_MW timestamp of deletion
* @throws MWException
*/
__METHOD__
);
if ( $row ) {
- Category::newFromRow( $row, $title )->refreshCounts();
+ $cat = Category::newFromRow( $row, $title );
+ // T166757: do the update after the main job DB commit
+ DeferredUpdates::addCallableUpdate( function () use ( $cat ) {
+ $cat->refreshCounts();
+ } );
}
}