dispatch stream update to celery

This commit is contained in:
j 2012-01-02 17:58:26 +05:30
parent 29395aeeff
commit 2d36ca047e
1 changed files with 24 additions and 17 deletions

View File

@ -5,9 +5,32 @@ from django.conf import settings
import os
from glob import glob
from celery.task import task
from ... import models, extract
@task(queue="encoding")
def update_stream(id):
s = models.Stream.objects.get(pk=id)
if not glob("%s*"%s.timeline_prefix):
s.make_timeline()
if not s.color:
s.cuts = tuple(extract.cuts(s.timeline_prefix))
s.color = tuple(extract.average_color(s.timeline_prefix))
s.save()
s.file.selected = True
s.file.save()
s.file.item.update_timeline()
#make sure all derivatives exist
s.extract_derivatives()
#update clips
for c in s.file.item.clips.all():
c.update_calculated_values()
c.save()
class Command(BaseCommand):
"""
"""
@ -49,20 +72,4 @@ class Command(BaseCommand):
s.save()
print "update streams"
for s in models.Stream.objects.filter(source=None):
if not glob("%s*"%s.timeline_prefix):
s.make_timeline()
if not s.color:
s.cuts = tuple(extract.cuts(self.timeline_prefix))
s.color = tuple(extract.average_color(self.timeline_prefix))
s.save()
s.file.selected = True
s.file.save()
s.file.item.update_timeline()
#make sure all derivatives exist
s.extract_derivatives()
#update clips
for c in s.file.item.clips.all():
c.update_calculated_values()
c.save()
update_stream.delay(s.id)