mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
Automate cron_config.py file creation
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
import getpass
|
||||
import os
|
||||
from os.path import isfile
|
||||
import random
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
@@ -259,6 +260,18 @@ class DeployCommand(Command):
|
||||
shutil.copyfile(f"{self._templates_dir}/urls.py.tpl", f"{path}/urls.py")
|
||||
os.mkdir(f"{parsed_args.name}/media")
|
||||
|
||||
hour = random.randint(0, 6)
|
||||
tpl = self._render_template(
|
||||
f"{self._templates_dir}/cron_config.py.tpl",
|
||||
{
|
||||
"minute": random.randint(1, 59),
|
||||
"hour_start": hour,
|
||||
"hour_end": hour + 12,
|
||||
},
|
||||
)
|
||||
with open(f"{path}/cron_config.py", "w") as fp:
|
||||
fp.write(tpl)
|
||||
|
||||
if isfile(f"{path}/settings.pyc"):
|
||||
os.unlink(f"{path}/settings.pyc")
|
||||
self._exec_django_command("migrate", parsed_args.name, "--noinput")
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
from rq.cron import register
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
from modoboa.amavis import jobs as amavis_jobs
|
||||
from modoboa.calendars import jobs as calendars_jobs
|
||||
from modoboa.core import jobs as core_jobs
|
||||
from modoboa.admin import jobs as admin_jobs
|
||||
from modoboa.maillog import jobs as maillog_jobs
|
||||
|
||||
|
||||
register(core_jobs.clean_logs, queue_name="modoboa", cron="0 0 * * *")
|
||||
|
||||
register(
|
||||
core_jobs.communicate_with_public_api,
|
||||
queue_name="modoboa",
|
||||
cron="{{ minute }} {{ hour_start }},{{ hour_end }} * * *",
|
||||
)
|
||||
|
||||
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.update_statistics, queue_name="modoboa", cron="0 * * * *")
|
||||
|
||||
register(calendars_jobs.generate_rights, queue_name="modoboa", cron="*/2 * * * *")
|
||||
|
||||
if "modoboa.amavis" in settings.MODOBOA_APPS:
|
||||
register(amavis_jobs.qcleanup, queue_name="modoboa", cron="0 0 * * *")
|
||||
register(amavis_jobs.amnotify, queue_name="modoboa", cron="0 12 * * *")
|
||||
@@ -1,5 +1,3 @@
|
||||
import random
|
||||
|
||||
from rq.cron import register
|
||||
|
||||
from django.conf import settings
|
||||
@@ -14,12 +12,10 @@ from modoboa.maillog import jobs as maillog_jobs
|
||||
register(core_jobs.clean_logs, queue_name="modoboa", cron="0 0 * * *")
|
||||
|
||||
# Random start for this one to avoid a DDoS on the API...
|
||||
minute = random.randint(1, 59)
|
||||
hour = random.randint(0, 6)
|
||||
register(
|
||||
core_jobs.communicate_with_public_api,
|
||||
queue_name="modoboa",
|
||||
cron=f"{minute} {hour},{hour + 12} * * *",
|
||||
cron="12 2,14 * * *",
|
||||
)
|
||||
|
||||
register(admin_jobs.handle_mailbox_operations, queue_name="dovecot", cron="* * * * *")
|
||||
|
||||
Reference in New Issue
Block a user