Legoktm has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/392781 )

Change subject: Add a systemd unit to run runJobs.php as a service
......................................................................

Add a systemd unit to run runJobs.php as a service

Using --wait, the script will act as a daemon and just wait for new jobs
to come in and then immediately process them.

The main concern with such a setup is that runJobs.php needs to restart to
pick up code and configuration changes. We set --maxjobs=50 so it restarts
somewhat regularly, and set a timeout of 5 minutes, after which it will sleep
for 15 seconds and then restart.

This service is not enabled by default since after installing the package you
still need to manually install MediaWiki before this can be run.

Ideally we could set something like `After=mysql.service` but we don't
actually know the database backend being used. It's possible this will
be a race condition but the script will just crash and restart in 15
seconds, hopefully by then MySQL would be up.

This is inspired by the setup translatewiki.net has, and thanks to Nikerabbit
for explaining it to me.

Bug: T160035
Change-Id: Iec3ee0ab72f8caf8cbc1da005cd53b7b6d20e2c1
---
A debian/mediawiki.mediawiki-jobrunner.service
M debian/rules
2 files changed, 28 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/debian 
refs/changes/81/392781/1

diff --git a/debian/mediawiki.mediawiki-jobrunner.service 
b/debian/mediawiki.mediawiki-jobrunner.service
new file mode 100644
index 0000000..6ac53da
--- /dev/null
+++ b/debian/mediawiki.mediawiki-jobrunner.service
@@ -0,0 +1,18 @@
+[Unit]
+Description=MediaWiki job runner
+Documentation=https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:RunJobs.php
+
+[Service]
+User=www-data
+Group=www-data
+ExecStart=/usr/bin/php /var/lib/mediawiki/maintenance/runJobs.php --wait 
--maxjobs=50
+Restart=always
+RestartSec=15
+RuntimeMaxSec=300
+PrivateDevices=true
+PrivateTmp=true
+ProtectHome=read-only
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/debian/rules b/debian/rules
index 5f43c70..57eb05d 100755
--- a/debian/rules
+++ b/debian/rules
@@ -50,5 +50,15 @@
        find debian/mediawiki -depth \( -name ".cvsignore" -o -name 
".gitignore" -o -name ".arch-ids" \) -exec rm -rf {} \;
        dh_installdeb
 
+override_dh_systemd_enable:
+       # Do not enable by default, the user needs to manually
+       # configure MediaWiki first.
+       dh_systemd_enable --no-enable --name=mediawiki-jobrunner
+
+override_dh_installinit:
+       # We only have a systemd unit, not sysvinit.
+       # Can be removed in debhelper compat 11
+       dh_installinit -Nmediawiki
+
 %:
        dh $@ --with apache2

-- 
To view, visit https://gerrit.wikimedia.org/r/392781
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iec3ee0ab72f8caf8cbc1da005cd53b7b6d20e2c1
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/debian
Gerrit-Branch: master
Gerrit-Owner: Legoktm <lego...@member.fsf.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to