add task queue api

This commit is contained in:
j 2016-08-17 14:37:59 +02:00
commit e1cacdb67a
15 changed files with 257 additions and 7 deletions

View file

@ -20,6 +20,7 @@ import ox.iso
from item import utils
import item.models
from person.models import get_name_sort
from taskqueue.models import Task
from chunk import save_chunk
import extract
@ -231,6 +232,7 @@ class File(models.Model):
self.item = qs[0]
if not self.item:
self.item = item.models.get_item(info, user)
Task.start(self.item, user)
for key in self.AV_INFO + self.PATH_INFO:
if key in info:
self.info[key] = info[key]

View file

@ -9,6 +9,8 @@ from django.db.models import Q
from item.models import Item
from item.tasks import update_poster
from taskqueue.models import Task
import models
import extract
import external
@ -96,6 +98,7 @@ def update_files(user, volume, files):
i.update_selected()
for i in update_timeline:
i = Item.objects.get(public_id=i)
Tasks.start(i, user)
i.update_timeline()
@task(ignore_results=True, queue='default')
@ -130,6 +133,7 @@ def process_stream(fileId):
file.item.update_timeline()
if file.item.rendered:
file.item.save()
Task.finish(file.item)
models.File.objects.filter(id=fileId).update(encoding=False)
return True
@ -158,6 +162,7 @@ def extract_stream(fileId):
file.item.update_timeline()
update_poster(file.item.public_id)
file.extract_tracks()
Task.finish(file.item)
models.File.objects.filter(id=fileId).update(encoding=False)
@task(queue="encoding")

View file

@ -20,6 +20,7 @@ from item.views import parse_query
import item.tasks
from oxdjango.api import actions
from changelog.models import add_changelog
from taskqueue.models import Task
from . import models
from . import queue
@ -280,6 +281,7 @@ def firefogg_upload(request):
f.save()
if f.item.rendered and f.selected:
Item.objects.filter(id=f.item.id).update(rendered=False)
Task.start(f.item, request.user)
response = {
'uploadUrl': '/api/upload/?id=%s&profile=%s' % (f.oshash, profile),
'url': request.build_absolute_uri('/%s' % f.item.public_id),
@ -331,6 +333,7 @@ def direct_upload(request):
Item.objects.filter(id=file.item.id).update(rendered=False)
file.uploading = True
file.save()
Task.start(file.item, request.user)
upload_url = request.build_absolute_uri('/api/upload/direct/?id=%s' % file.oshash)
return render_to_json_response({
'uploadUrl': upload_url,
@ -423,6 +426,7 @@ def moveMedia(request, data):
else:
c.rendered = False
c.save()
Task.start(c, request.user)
item.tasks.update_timeline.delay(public_id)
response = json_response(text='updated')
response['data']['item'] = i.public_id
@ -470,6 +474,10 @@ def editMedia(request, data):
if key == 'language' and (f.is_video or f.is_audio):
save_items.add(f.item.id)
if key == 'part' and (f.is_video or f.is_audio):
if f.item.rendered:
f.item.rendered = False
f.item.save()
Task.start(f.item, request.user)
update_timeline.add(f.item.id)
update = True
if update: