Date: Sunday, May 23, 2021 @ 22:01:14
  Author: demize
Revision: 943521

Add support for worker processes

Fixes FS#65304.

Added:
  matrix-synapse/trunk/generic_worker.yaml.example
  matrix-synapse/trunk/synapse-worker@.service
  matrix-synapse/trunk/synapse.target
Modified:
  matrix-synapse/trunk/PKGBUILD
  matrix-synapse/trunk/synapse.service

-----------------------------+
 PKGBUILD                    |   11 +++++++++--
 generic_worker.yaml.example |   34 ++++++++++++++++++++++++++++++++++
 synapse-worker@.service     |   22 ++++++++++++++++++++++
 synapse.service             |    6 ++++--
 synapse.target              |    7 +++++++
 5 files changed, 76 insertions(+), 4 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2021-05-23 21:59:24 UTC (rev 943520)
+++ PKGBUILD    2021-05-23 22:01:14 UTC (rev 943521)
@@ -33,7 +33,10 @@
             'python-hiredis')
 
 
source=("synapse-$pkgver.tar.gz::https://github.com/matrix-org/synapse/archive/v$pkgver.tar.gz";
+        'generic_worker.yaml.example'
         'synapse.service'
+        'synapse.target'
+        'synapse-worker@.service'
         'sysusers-synapse.conf'
         'tmpfiles-synapse.conf')
 
@@ -40,6 +43,9 @@
 sha256sums=('d74654ca8859dc4d0794dd46663d2f88d5bd36b38fd48a820e235ab50cc8a726'
             'SKIP'
             'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
             'SKIP')
 
 backup=('etc/synapse/log_config.yaml')
@@ -60,10 +66,11 @@
        export PYTHONHASHSEED=0
        python setup.py install --root "$pkgdir" --optimize=1 --skip-build
 
-       install -dm755 -o 198 -g 198 "$pkgdir"/etc/synapse
+       install -dm755 -o 198 -g 198 "$pkgdir"/etc/synapse{,workers}
        install -Dm644 contrib/systemd/log_config.yaml 
"$pkgdir"/etc/synapse/log_config.yaml
+       install -Dm644 "$srcdir"/generic_worker.yaml.example 
"$pkgdir"/etc/synapse/workers/generic_worker.yaml.example
 
-       install -Dm644 -t "$pkgdir"/usr/lib/systemd/system/ 
"$srcdir"/synapse.service
+       install -Dm644 -t "$pkgdir"/usr/lib/systemd/system/ 
"$srcdir"/synapse{,-worker@}.service "$srcdir"/synapse.target
        install -Dm644 "$srcdir"/sysusers-synapse.conf 
"$pkgdir"/usr/lib/sysusers.d/synapse.conf
        install -Dm644 "$srcdir"/tmpfiles-synapse.conf 
"$pkgdir"/usr/lib/tmpfiles.d/synapse.conf
 }

Added: generic_worker.yaml.example
===================================================================
--- generic_worker.yaml.example                         (rev 0)
+++ generic_worker.yaml.example 2021-05-23 22:01:14 UTC (rev 943521)
@@ -0,0 +1,34 @@
+# To configure workers please refer to:
+# https://github.com/matrix-org/synapse/blob/master/docs/workers.md
+
+# The type of the worker. A generic_worker can handle a part of the
+# client/federation API requests, taking some load from the master
+# process.
+# If used, the reverse proxy has to be configured accordingly.
+worker_app: synapse.app.generic_worker
+
+# The name of the worker. Must be unique among all workers.
+worker_name: worker1
+
+# The replication listener on the main synapse process.
+worker_replication_host: '127.0.0.1'
+worker_replication_http_port: 9093
+
+
+worker_listeners:
+ - type: http
+   bind_address: '127.0.0.1'
+   port: 8083
+
+# Uncomment the following to make this worker respect the
+# X-Forwarded-For header set by your reverse proxy.
+#   x_forwarded: true
+
+# Because a generic_worker handles client and federation API requests
+# it needs the client and federation resources.
+   resources:
+     - names:
+       - client
+       - federation
+
+worker_log_config: /etc/synapse/log_config.yaml

Added: synapse-worker@.service
===================================================================
--- synapse-worker@.service                             (rev 0)
+++ synapse-worker@.service     2021-05-23 22:01:14 UTC (rev 943521)
@@ -0,0 +1,22 @@
+[Unit]
+Description=Synapse Matrix homeserver (%i)
+AssertPathExists=/etc/synapse/workers/%i.yaml
+PartOf=synapse.target
+ReloadPropagatedFrom=synapse.target
+After=synapse.service
+
+[Service]
+Type=notify
+User=synapse
+Group=synapse
+SyslogIdentifier=synapse-%i
+Environment=LANG=en_US.UTF-8
+WorkingDirectory=/var/lib/synapse
+ExecStart=/usr/bin/python3 -m synapse.app.generic_worker 
--config-path=/etc/synapse/homeserver.yaml 
--config-path=/etc/synapse/workers/%i.yaml
+ExecReload=/bin/kill -HUP $MAINPID
+EnvironmentFile=-/etc/default/synapse
+Restart=always
+RestartSec=3
+
+[Install]
+WantedBy=synapse.target

Modified: synapse.service
===================================================================
--- synapse.service     2021-05-23 21:59:24 UTC (rev 943520)
+++ synapse.service     2021-05-23 22:01:14 UTC (rev 943521)
@@ -1,7 +1,9 @@
 [Unit]
-Description=Synapse Matrix homeserver
+Description=Synapse Matrix homeserver (master)
 After=network-online.target
 Wants=network-online.target
+PartOf=synapse.target
+ReloadPropagatedFrom=synapse.target
 
 [Service]
 Type=notify
@@ -18,4 +20,4 @@
 RestartSec=3
 
 [Install]
-WantedBy=multi-user.target
+WantedBy=multi-user.target synapse.target

Added: synapse.target
===================================================================
--- synapse.target                              (rev 0)
+++ synapse.target      2021-05-23 22:01:14 UTC (rev 943521)
@@ -0,0 +1,7 @@
+[Unit]
+Description=Synapse parent target
+After=network-online.target
+Wants=network-online.target
+
+[Install]
+WantedBy=multi-user.target

Reply via email to