expose encoding status via api

This commit is contained in:
j 2016-05-05 10:49:34 +02:00
parent be163826ef
commit 41cc8e3573
2 changed files with 15 additions and 11 deletions

View File

@ -30,18 +30,15 @@ def parse_job(job):
return r
def status():
status = {
'active': [],
'queued': [],
}
status = []
encoding_jobs = ('archive.tasks.extract_stream', 'archive.tasks.process_stream')
c = celery.task.control.inspect()
for job in c.active(safe=True).get('celery@pandora-encoding', []):
if job['name'] in encoding_jobs:
status['active'].append(parse_job(job))
status.append(parse_job(job))
for job in c.reserved(safe=True).get('celery@pandora-encoding', []):
if job['name'] in encoding_jobs:
status['queued'].append(parse_job(job))
status.append(parse_job(job))
return status

View File

@ -21,9 +21,10 @@ import item.tasks
from oxdjango.api import actions
from changelog.models import add_changelog
import models
import tasks
from chunk import process_chunk
from . import models
from . import queue
from . import tasks
from .chunk import process_chunk
@login_required_json
@ -710,3 +711,9 @@ def getMediaInfo(request, data):
return render_to_json_response(response)
actions.register(getMediaInfo)
def getEncodingStatus(request, data):
response = json_response()
response['data']['status'] = queue.status()
return render_to_json_response(response)
actions.register(getEncodingStatus, cache=False)