Move job and user delete functions to utils.py

This commit is contained in:
Stephan Porada
2019-09-17 16:31:41 +02:00
parent 09f7d7ac68
commit 0d060f0cbf
6 changed files with 80 additions and 55 deletions

View File

@ -8,6 +8,7 @@ from ..models import Corpus, Job
import os
import logging
import threading
from app.utils import background_delete_job
@main.route('/')
@ -144,28 +145,9 @@ def job_download(job_id):
@main.route('/jobs/<int:job_id>/delete')
@login_required
def delete_job(job_id):
logger = logging.getLogger(__name__)
def background_delete(job_id, app):
with app.app_context():
logger.warning('Called by delete_thread.')
logger.warning('Job id is: {}.'.format(job_id))
job = Job.query.filter_by(id=job_id).first()
logger.warning('Job object is: {}'.format(job))
logger.warning('Job status: {}'.format(job.status))
job.flag_for_stop()
logger.warning('Job status: {}'.format(job.status))
deleted = False
while deleted is False:
db.session.refresh(job)
if job.status == 'deleted':
logger.warning('Job status is deleted.')
job.delete_job()
deleted = True
delete_thread = threading.Thread(target=background_delete,
args=(job_id,
current_app._get_current_object()))
delete_thread = threading.Thread(target=background_delete_job,
args=(current_app._get_current_object(),
job_id))
delete_thread.start()
flash('Job has been deleted!')
return redirect(url_for('main.dashboard'))