Merge pull request #3885 from modoboa/rq/queue-with-root-privileges

Added new RQ queue for operations requiring root privileges
This commit is contained in:
Antoine Nguyen
2026-01-16 15:21:04 +01:00
committed by GitHub
4 changed files with 31 additions and 4 deletions
+13
View File
@@ -309,6 +309,19 @@ numprocs=1
stopsignal=TERM
```
## Privileged worker
``` ini
[program:modoboa-privileged-worker]
autostart=true
autorestart=true
command=<path to Python binary inside the virtual environment> <path to Modoboa instance>/manage.py rqworker privileged
directory=<modoboa user home dir>
user=root
redirect_stderr=true
numprocs=1
stopsignal=TERM
```
## General worker
``` ini
[program:modoboa-base-worker]
+9 -2
View File
@@ -155,6 +155,13 @@ RQ_QUEUES = {
'HOST': REDIS_HOST, # [!code ++]
'PORT': REDIS_PORT, # [!code ++]
'DB': REDIS_QUOTA_DB, # [!code ++]
'URL': REDIS_URL, # [!code ++]
}, # [!code ++]
'privileged': { # [!code ++]
'HOST': REDIS_HOST, # [!code ++]
'PORT': REDIS_PORT, # [!code ++]
'DB': REDIS_QUOTA_DB, # [!code ++]
'URL': REDIS_URL, # [!code ++]
}, # [!code ++]
}
```
@@ -186,10 +193,10 @@ register(
register(admin_jobs.handle_mailbox_operations, queue_name="dovecot", cron="* * * * *")
register(admin_jobs.handle_dns_checks, queue_name="modoboa", cron="* * * * *")
register(maillog_jobs.logparser, queue_name="modoboa", cron="*/5 * * * *")
register(maillog_jobs.logparser, queue_name="privileged", cron="*/5 * * * *")
register(maillog_jobs.update_statistics, queue_name="modoboa", cron="0 * * * *")
register(calendars_jobs.generate_rights, queue_name="modoboa", cron="*/2 * * * *")
register(calendars_jobs.generate_rights, queue_name="privileged", cron="*/2 * * * *")
if "modoboa.amavis" in settings.MODOBOA_APPS:
register(amavis_jobs.qcleanup, queue_name="modoboa", cron="0 0 * * *")
@@ -20,10 +20,10 @@ register(
register(admin_jobs.handle_mailbox_operations, queue_name="dovecot", cron="* * * * *")
register(admin_jobs.handle_dns_checks, queue_name="modoboa", cron="* * * * *")
register(maillog_jobs.logparser, queue_name="modoboa", cron="*/5 * * * *")
register(maillog_jobs.logparser, queue_name="privileged", cron="*/5 * * * *")
register(maillog_jobs.update_statistics, queue_name="modoboa", cron="0 * * * *")
register(calendars_jobs.generate_rights, queue_name="modoboa", cron="*/2 * * * *")
register(calendars_jobs.generate_rights, queue_name="privileged", cron="*/2 * * * *")
if "modoboa.amavis" in settings.MODOBOA_APPS:
register(amavis_jobs.qcleanup, queue_name="modoboa", cron="0 0 * * *")
@@ -313,6 +313,13 @@ RQ_QUEUES = {
'DB': REDIS_QUOTA_DB,
'URL': REDIS_URL,
},
'privileged': {
'HOST': REDIS_HOST,
'PORT': REDIS_PORT,
'DB': REDIS_QUOTA_DB,
'URL': REDIS_URL,
},
}
# CACHE