| 123456789101112131415161718192021222324252627282930 | import datetimeimport timeimport appimport clickfrom extensions.ext_database import dbfrom flask import current_appfrom models.dataset import Embeddingfrom werkzeug.exceptions import NotFound@app.celery.task(queue='dataset')def clean_embedding_cache_task():    click.echo(click.style('Start clean embedding cache.', fg='green'))    clean_days = int(current_app.config.get('CLEAN_DAY_SETTING'))    start_at = time.perf_counter()    thirty_days_ago = datetime.datetime.now() - datetime.timedelta(days=clean_days)    page = 1    while True:        try:            embeddings = db.session.query(Embedding).filter(Embedding.created_at < thirty_days_ago) \                .order_by(Embedding.created_at.desc()).paginate(page=page, per_page=100)        except NotFound:            break        for embedding in embeddings:            db.session.delete(embedding)        db.session.commit()        page += 1    end_at = time.perf_counter()    click.echo(click.style('Cleaned embedding cache from db success latency: {}'.format(end_at - start_at), fg='green'))
 |