ucast/ucast/tasks/schedule.py
2022-06-29 23:25:43 +02:00

42 lines
1 KiB
Python

import logging
from datetime import datetime, timedelta
from django.conf import settings
from ucast import queue
from ucast.tasks import download, library
log = logging.getLogger(__name__)
def clear_scheduled_jobs():
"""Delete all scheduled jobs to prevent duplicates"""
scheduler = queue.get_scheduler()
for job in scheduler.get_jobs():
log.debug("Deleting scheduled job %s", job)
job.delete()
def register_scheduled_jobs():
"""Register all scheduled jobs"""
scheduler = queue.get_scheduler()
scheduler.schedule(
datetime.utcnow(),
download.update_channels,
id="schedule_update_channels",
interval=settings.YT_UPDATE_INTERVAL,
)
scheduler.schedule(
datetime.utcnow() + timedelta(days=1),
library.update_channel_infos,
id="schedule_update_channel_infos",
interval=24 * 3600,
)
scheduler.schedule(
datetime.utcnow() + timedelta(days=1),
library.clean_cache,
id="schedule_clean_cache",
interval=24 * 3600,
)