MediaWiki
1.34.0
DeleteLinksJob.php
Go to the documentation of this file.
1
<?php
24
use
MediaWiki\MediaWikiServices
;
25
34
class
DeleteLinksJob
extends
Job
{
35
function
__construct
(
Title
$title
, array
$params
) {
36
parent::__construct(
'deleteLinks'
,
$title
,
$params
);
37
$this->removeDuplicates =
true
;
38
}
39
40
function
run
() {
41
if
( is_null( $this->title ) ) {
42
$this->
setLastError
(
"deleteLinks: Invalid title"
);
43
return
false
;
44
}
45
46
$pageId = $this->params[
'pageId'
];
47
48
// Serialize links updates by page ID so they see each others' changes
49
$scopedLock =
LinksUpdate::acquirePageLock
(
wfGetDB
(
DB_MASTER
), $pageId,
'job'
);
50
if
( $scopedLock ===
null
) {
51
$this->
setLastError
(
'LinksUpdate already running for this page, try again later.'
);
52
return
false
;
53
}
54
55
if
(
WikiPage::newFromID
( $pageId, WikiPage::READ_LATEST ) ) {
56
// The page was restored somehow or something went wrong
57
$this->
setLastError
(
"deleteLinks: Page #$pageId exists"
);
58
return
false
;
59
}
60
61
$factory = MediaWikiServices::getInstance()->getDBLoadBalancerFactory();
62
$timestamp = $this->params[
'timestamp'
] ??
null
;
63
$page =
WikiPage::factory
( $this->title );
// title when deleted
64
65
$update =
new
LinksDeletionUpdate
( $page, $pageId, $timestamp );
66
$update->setTransactionTicket( $factory->getEmptyTransactionTicket( __METHOD__ ) );
67
$update->doUpdate();
68
69
return
true
;
70
}
71
}
DeleteLinksJob
Job to prune link tables for pages that were deleted.
Definition:
DeleteLinksJob.php:34
LinksUpdate\acquirePageLock
static acquirePageLock(IDatabase $dbw, $pageId, $why='atomicity')
Acquire a session-level lock for performing link table updates for a page on a DB.
Definition:
LinksUpdate.php:214
MediaWiki\MediaWikiServices
MediaWikiServices is the service locator for the application scope of MediaWiki.
Definition:
MediaWikiServices.php:117
Job\$title
Title $title
Definition:
Job.php:41
Job\$params
array $params
Array of job parameters.
Definition:
Job.php:35
Job\setLastError
setLastError( $error)
Definition:
Job.php:418
Job
Class to both describe a background job and handle jobs.
Definition:
Job.php:30
WikiPage\factory
static factory(Title $title)
Create a WikiPage object of the appropriate class for the given title.
Definition:
WikiPage.php:142
wfGetDB
wfGetDB( $db, $groups=[], $wiki=false)
Get a Database object.
Definition:
GlobalFunctions.php:2575
DB_MASTER
const DB_MASTER
Definition:
defines.php:26
WikiPage\newFromID
static newFromID( $id, $from='fromdb')
Constructor from a page id.
Definition:
WikiPage.php:180
LinksDeletionUpdate
Update object handling the cleanup of links tables after a page was deleted.
Definition:
LinksDeletionUpdate.php:28
DeleteLinksJob\__construct
__construct(Title $title, array $params)
Definition:
DeleteLinksJob.php:35
Title
Represents a title within MediaWiki.
Definition:
Title.php:42
DeleteLinksJob\run
run()
Run the job.
Definition:
DeleteLinksJob.php:40
includes
jobqueue
jobs
DeleteLinksJob.php
Generated on Thu Dec 19 2019 14:54:24 for MediaWiki by
1.8.16