forked from MirrorHub/synapse
Allow override for requesting specific worker types for Complement on command line. (#14324)
* Expose getting SYNAPSE_WORKER_TYPES from external, allowing override of workers requested. * Add WORKER_TYPES variable option to complement.sh script that passes requested workers into start_for_complement.sh entrypoint. * Update docs to reflect this new ability. * Changelog * Don't rely on soft wrapping to format long strings Good idea dklimpel. Thanks for catching that. Co-authored-by: Dirk Klimpel <5740567+dklimpel@users.noreply.github.com> * Small nits just noticed in docs. * Fixup new line in docs. Co-authored-by: Dirk Klimpel <5740567+dklimpel@users.noreply.github.com>
This commit is contained in:
parent
7894251bce
commit
69814eb282
4 changed files with 18 additions and 1 deletions
1
changelog.d/14324.misc
Normal file
1
changelog.d/14324.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Add override ability to `complement.sh` command line script to request certain types of workers.
|
|
@ -45,6 +45,11 @@ esac
|
||||||
|
|
||||||
if [[ -n "$SYNAPSE_COMPLEMENT_USE_WORKERS" ]]; then
|
if [[ -n "$SYNAPSE_COMPLEMENT_USE_WORKERS" ]]; then
|
||||||
# Specify the workers to test with
|
# Specify the workers to test with
|
||||||
|
# Allow overriding by explicitly setting SYNAPSE_WORKER_TYPES outside, while still
|
||||||
|
# utilizing WORKERS=1 for backwards compatibility.
|
||||||
|
# -n True if the length of string is non-zero.
|
||||||
|
# -z True if the length of string is zero.
|
||||||
|
if [[ -z "$SYNAPSE_WORKER_TYPES" ]]; then
|
||||||
export SYNAPSE_WORKER_TYPES="\
|
export SYNAPSE_WORKER_TYPES="\
|
||||||
event_persister, \
|
event_persister, \
|
||||||
event_persister, \
|
event_persister, \
|
||||||
|
@ -61,6 +66,8 @@ if [[ -n "$SYNAPSE_COMPLEMENT_USE_WORKERS" ]]; then
|
||||||
appservice, \
|
appservice, \
|
||||||
pusher"
|
pusher"
|
||||||
|
|
||||||
|
fi
|
||||||
|
log "Workers requested: $SYNAPSE_WORKER_TYPES"
|
||||||
# Improve startup times by using a launcher based on fork()
|
# Improve startup times by using a launcher based on fork()
|
||||||
export SYNAPSE_USE_EXPERIMENTAL_FORKING_LAUNCHER=1
|
export SYNAPSE_USE_EXPERIMENTAL_FORKING_LAUNCHER=1
|
||||||
else
|
else
|
||||||
|
|
|
@ -324,6 +324,12 @@ The above will run a monolithic (single-process) Synapse with SQLite as the data
|
||||||
|
|
||||||
- Passing `POSTGRES=1` as an environment variable to use the Postgres database instead.
|
- Passing `POSTGRES=1` as an environment variable to use the Postgres database instead.
|
||||||
- Passing `WORKERS=1` as an environment variable to use a workerised setup instead. This option implies the use of Postgres.
|
- Passing `WORKERS=1` as an environment variable to use a workerised setup instead. This option implies the use of Postgres.
|
||||||
|
- If setting `WORKERS=1`, optionally set `WORKER_TYPES=` to declare which worker
|
||||||
|
types you wish to test. A simple comma-delimited string containing the worker types
|
||||||
|
defined from the `WORKERS_CONFIG` template in
|
||||||
|
[here](https://github.com/matrix-org/synapse/blob/develop/docker/configure_workers_and_start.py#L54).
|
||||||
|
A safe example would be `WORKER_TYPES="federation_inbound, federation_sender, synchrotron"`.
|
||||||
|
See the [worker documentation](../workers.md) for additional information on workers.
|
||||||
|
|
||||||
To increase the log level for the tests, set `SYNAPSE_TEST_LOG_LEVEL`, e.g:
|
To increase the log level for the tests, set `SYNAPSE_TEST_LOG_LEVEL`, e.g:
|
||||||
```sh
|
```sh
|
||||||
|
|
|
@ -139,6 +139,9 @@ if [[ -n "$WORKERS" ]]; then
|
||||||
# Use workers.
|
# Use workers.
|
||||||
export PASS_SYNAPSE_COMPLEMENT_USE_WORKERS=true
|
export PASS_SYNAPSE_COMPLEMENT_USE_WORKERS=true
|
||||||
|
|
||||||
|
# Pass through the workers defined. If none, it will be an empty string
|
||||||
|
export PASS_SYNAPSE_WORKER_TYPES="$WORKER_TYPES"
|
||||||
|
|
||||||
# Workers can only use Postgres as a database.
|
# Workers can only use Postgres as a database.
|
||||||
export PASS_SYNAPSE_COMPLEMENT_DATABASE=postgres
|
export PASS_SYNAPSE_COMPLEMENT_DATABASE=postgres
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue