MediaWiki Job Queue: Difference between revisions
Line 8: | Line 8: | ||
IP="/var/www/wiki.example.com" # The DocumentRoot directory of the wiki | IP="/var/www/wiki.example.com" # The DocumentRoot directory of the wiki | ||
OWNER="www-data" # The user that owns the $IP directory | OWNER="www-data" # The user that owns the $IP directory | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Show Jobs== | ==Show Jobs== | ||
<syntaxhighlight lang="shell" line="1" class="code-continue"> | <syntaxhighlight lang="shell" line="1" class="code-continue"> | ||
sudo -u ${OWNER} php "${IP}/maintenance/showJobs.php" | |||
</syntaxhighlight><syntaxhighlight lang="bash" class="code-continue"> | |||
15 # The count of the all pending jobs | |||
</syntaxhighlight><syntaxhighlight lang="shell" line="1" class="code-continue"> | |||
sudo -u ${OWNER} php "${IP}/maintenance/showJobs.php" --group | sudo -u ${OWNER} php "${IP}/maintenance/showJobs.php" --group | ||
</syntaxhighlight><syntaxhighlight lang="shell-session" class="code-continue"> | </syntaxhighlight><syntaxhighlight lang="shell-session" class="code-continue"> | ||
Line 30: | Line 33: | ||
</syntaxhighlight><syntaxhighlight lang="shell" line="1" class="code-continue"> | </syntaxhighlight><syntaxhighlight lang="shell" line="1" class="code-continue"> | ||
sudo -u ${OWNER} php "${IP}/maintenance/showJobs.php" --type cirrusSearchLinksUpdatePrioritized | sudo -u ${OWNER} php "${IP}/maintenance/showJobs.php" --type cirrusSearchLinksUpdatePrioritized | ||
</syntaxhighlight><syntaxhighlight lang=" | </syntaxhighlight><syntaxhighlight lang="bash" class="code-continue"> | ||
2 # | 2 # The count of the pending jobs for the specified --type | ||
</syntaxhighlight>If it is a wiki family, you may need to specify the <code>$wikiId</code>, like below.<syntaxhighlight lang="shell" line="1" class="code-continue"> | </syntaxhighlight>If it is a wiki family, you may need to specify the <code>$wikiId</code>, like below.<syntaxhighlight lang="shell" line="1" class="code-continue"> | ||
sudo -u ${OWNER} php "${IP}/maintenance/showJobs.php" --wiki="${wikiId}" | sudo -u ${OWNER} php "${IP}/maintenance/showJobs.php" --wiki="${wikiId}" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Manage Jobs == | |||
Re-push abandoned jobs of certain type.<syntaxhighlight lang="shell" line="1" class="code-continue mlw-shell-gray"> | |||
sudo -u ${OWNER} php "${IP}/maintenance/manageJobs.php" --type typeName --action "repush-abandoned" | |||
</syntaxhighlight>Delete Jobs of certain type. <syntaxhighlight lang="shell" line="1" class="code-continue mlw-shell-gray"> | |||
sudo -u ${OWNER} php "${IP}/maintenance/manageJobs.php" --type typeName --action "delete" | |||
</syntaxhighlight>Use <code>showJobs.php --group</code>, as it is shown above, to find available job types in the current job queue. Note the quote marks at the action options in the examples above are used here just for better highlight. | |||
==References== | ==References== | ||
*MediaWiki: [[mw:Manual:Job queue|Manual:Job queue]] | *Continuous service examples: | ||
*MediaWiki: [[mw:Manual:showJobs.php|Manual:showJobs.php]] | **MediaWiki: [[mw:Manual:Job queue|Manual:'''Job queue''']] | ||
**Semantic MediaWiki: [[smw:Help:Job queue|Help:Job queue]] | |||
*MediaWiki: [[mw:Manual:runJobs.php|Manual:'''runJobs.php''']] | |||
*MediaWiki: [[mw:Manual:showJobs.php|Manual:'''showJobs.php''']] | |||
*MediaWiki: [[mw:Manual:manageJobs.php|Manual:'''manageJobs.php''']] | |||
*MediaWiki Docs: [https://doc.wikimedia.org/mediawiki-core/master/php/group__JobQueue.html JobQueue] | |||
*MediaWiki Support desk: [[mediawikiwiki:Topic:Tro0r1cvufe9juol|How to remove abandoned jobs from job queue?]] | |||
<noinclude> | <noinclude> |
Revision as of 16:15, 5 March 2023
I'm writing this article at the time while migrating this wiki from MediaWiki version 1.38 to version 1.39. According to the CirrusSearch extension's page and I was in need to migrate from Elasticsearch version 6.8.23 to version 7.10.2.
So after installing Elasticsearch version 7.10.2, instead following the Upgrade manual I've Rebuild the Elasticsearch data from scratch which leads me to an infinite MediaWiki's Job queue. For this reason I was need to get much familiar with the MediaWiki's maintenance scripts related the Job queue.
Envvars
The environment variables used in the following commands.
IP="/var/www/wiki.example.com" # The DocumentRoot directory of the wiki
OWNER="www-data" # The user that owns the $IP directory
Show Jobs
sudo -u ${OWNER} php "${IP}/maintenance/showJobs.php"
15 # The count of the all pending jobs
sudo -u ${OWNER} php "${IP}/maintenance/showJobs.php" --group
cirrusSearchLinksUpdatePrioritized: 2 queued; 0 claimed (0 active, 0 abandoned); 0 delayed
htmlCacheUpdate: 4 queued; 0 claimed (0 active, 0 abandoned); 0 delayed
recentChangesUpdate: 1 queued; 0 claimed (0 active, 0 abandoned); 0 delayed
refreshLinksDynamic: 7 queued; 0 claimed (0 active, 0 abandoned); 0 delayed
sudo -u ${OWNER} php "${IP}/maintenance/showJobs.php" --group
cirrusSearchLinksUpdatePrioritized MediaWiki_Job_Queue addedLinks=[] removedLinks=[] prioritize=1 cluster= namespace=0 title=MediaWiki_Job_Queue requestId=ZASOXkzdk5n0fxsD5JVbLgAAQRA (id=6794955,timestamp=20230305124311) status=unclaimed
...
htmlCacheUpdate MediaWiki_Job_Queue table=templatelinks recursive=1 rootJobIsSelf=1 rootJobSignature=fcd541151cba4e3ac5b300da797a3163c93407bc rootJobTimestamp=20230305124311 causeAction=page-edit namespace=0 title=MediaWiki_Job_Queue requestId=ZASOXkzdk5n0fxsD5JVbLgAAQRA causeAgent=unknown (id=6794956,timestamp=20230305124311) status=unclaimed
...
recentChangesUpdate Special:RecentChanges type=cacheUpdate namespace=-1 title=RecentChanges requestId=ZASOUUzdk5n0fxsD5JVa-QAAUQs (id=6794954,timestamp=20230305124307) status=unclaimed
refreshLinksDynamic Kali_Linux_Install_GUFW_(gui-ufw) isOpportunistic=1 rootJobTimestamp=20230305121652 namespace=0 title=Kali_Linux_Install_GUFW_(gui-ufw) requestId=ZASIM9BBdr0qUp1CuMirLwAAABA causeAction=unknown causeAgent=unknown (id=6794945,timestamp=20230305121653) status=unclaimed
...
sudo -u ${OWNER} php "${IP}/maintenance/showJobs.php" --type cirrusSearchLinksUpdatePrioritized
2 # The count of the pending jobs for the specified --type
If it is a wiki family, you may need to specify the $wikiId
, like below.
sudo -u ${OWNER} php "${IP}/maintenance/showJobs.php" --wiki="${wikiId}"
Manage Jobs
Re-push abandoned jobs of certain type.
sudo -u ${OWNER} php "${IP}/maintenance/manageJobs.php" --type typeName --action "repush-abandoned"
Delete Jobs of certain type.
sudo -u ${OWNER} php "${IP}/maintenance/manageJobs.php" --type typeName --action "delete"
Use showJobs.php –group
, as it is shown above, to find available job types in the current job queue. Note the quote marks at the action options in the examples above are used here just for better highlight.
References
- Continuous service examples:
- MediaWiki: Manual:Job queue
- Semantic MediaWiki: Help:Job queue
- MediaWiki: Manual:runJobs.php
- MediaWiki: Manual:showJobs.php
- MediaWiki: Manual:manageJobs.php
- MediaWiki Docs: JobQueue
- MediaWiki Support desk: How to remove abandoned jobs from job queue?