mirror of
https://github.com/Hopiu/django-imagekit.git
synced 2026-03-16 21:30:23 +00:00
ensure task is correctly created
This commit is contained in:
parent
1e4ac109f7
commit
d1af56ba3e
1 changed files with 12 additions and 15 deletions
|
|
@ -4,6 +4,15 @@ from __future__ import absolute_import
|
|||
from imagekit.imagecache import PessimisticImageCacheBackend, InvalidImageCacheBackendError
|
||||
|
||||
|
||||
def generate(model, pk, attr):
|
||||
try:
|
||||
instance = model._default_manager.get(pk=pk)
|
||||
except model.DoesNotExist:
|
||||
pass # The model was deleted since the task was scheduled. NEVER MIND!
|
||||
else:
|
||||
getattr(instance, attr).generate(save=True)
|
||||
|
||||
|
||||
class CeleryImageCacheBackend(PessimisticImageCacheBackend):
|
||||
"""
|
||||
A pessimistic cache state backend that uses celery to generate its spec
|
||||
|
|
@ -19,23 +28,11 @@ class CeleryImageCacheBackend(PessimisticImageCacheBackend):
|
|||
"""
|
||||
def __init__(self):
|
||||
try:
|
||||
import celery
|
||||
from celery.task import task
|
||||
except:
|
||||
raise InvalidImageCacheBackendError("Celery image cache backend requires either the 'celery' library")
|
||||
|
||||
@property
|
||||
def _task(self):
|
||||
from celery.task import task
|
||||
|
||||
@task
|
||||
def generate(model, pk, attr):
|
||||
try:
|
||||
instance = model._default_manager.get(pk=pk)
|
||||
except model.DoesNotExist:
|
||||
pass # The model was deleted since the task was scheduled. NEVER MIND!
|
||||
else:
|
||||
getattr(instance, attr).generate(save=True)
|
||||
return generate
|
||||
if not getattr(CeleryImageCacheBackend, '_task', None):
|
||||
CeleryImageCacheBackend._task = task(generate)
|
||||
|
||||
def invalidate(self, file):
|
||||
self._task.delay(file.instance.__class__, file.instance.pk, file.attname)
|
||||
|
|
|
|||
Loading…
Reference in a new issue