42 lines
1 KiB
Python
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,
|
|
)
|