Processing core¶
Processing core's configuration in processing_core.yml
file looks like this:
msg_broker:
host: localhost
port: 5672
virtual_host: /
username: dp3_user
password: dp3_password
worker_processes: 2
worker_threads: 16
modules_dir: "../dp3_modules"
enabled_modules:
- "module_one"
- "module_two"
Message broker¶
Message broker section describes connection details to RabbitMQ (or compatible) broker.
Parameter | Data-type | Default value | Description |
---|---|---|---|
host |
string | localhost |
IP address or hostname for connection to broker. |
port |
int | 5672 | Listening port of broker. |
virtual_host |
string | / |
Virtual host for connection to broker. |
username |
string | guest |
Username for connection to broker. |
password |
string | guest |
Password for connection to broker. |
Worker processes¶
Number of worker processes. This has to be at least 1.
If changing number of worker processes, the following process must be followed:
- stop all inputs writing to task queue (e.g. API)
- when all queues are empty, stop all workers
- reconfigure queues in RabbitMQ using script found in
/scripts/rmq_reconfigure.sh
- change the settings here and in init scripts for worker processes (e.g. supervisor)
- reload workers (e.g. using
supervisorctl
) and start all inputs again
Worker threads¶
Number of worker threads per process.
This may be higher than number of CPUs, because this is not primarily intended to utilize computational power of multiple CPUs (which Python cannot do well anyway due to the GIL), but to mask long I/O operations (e.g. queries to external services via network).
Modules directory¶
Path to directory with plug-in (secondary) modules.
Relative path is evaluated relative to location of this configuration file.
Enabled modules¶
List of plug-in modules which should be enabled in processing pipeline.
Name of module filename without .py
extension must be used!