Files
website-v2/libraries/tasks.py

35 lines
901 B
Python

import structlog
from celery.schedules import crontab
from config.celery import app
from libraries.github import LibraryUpdater
logger = structlog.getLogger(__name__)
@app.on_after_configure.connect
def setup_periodic_tasks(sender, **kwargs):
# Executes every 5th of the month at 7:30 a.m.
sender.add_periodic_task(
crontab(hour=7, minute=30, day_of_month=5),
update_libraries.s(),
)
@app.task
def update_libraries():
"""Update local libraries from GitHub Boost libraries.
Use the LibraryUpdater, which retrieves the active boost libraries from the
Boost GitHub repo, to update the models with the latest information on that
library (repo) along with its issues, pull requests, and related objects
from GitHub.
"""
updater = LibraryUpdater()
updater.update_libraries()
logger.info("libraries_tasks_update_libraries_finished")