Django easy-thumbanils 2.2 をインストールしました。これまではうまく機能していましたが、パフォーマンスを向上させるために非同期にすることにしました。docsに従って、次のコードを実装しました。
models.py
#saved_file.connect(generate_aliases_global) -> Code used for synchronous operation
@receiver(saved_file)
def generate_thumbnails_async(sender, fieldfile, **kwargs):
print('Calling') #This is being called during an upload
tasks.add.delay(10,2) # A Test function in tasks.py. Confirmed it is being called and the result outputted by the worker
tasks.generate_thumbnails.delay(
model=sender, pk=fieldfile.instance.pk,
field=fieldfile.field.name) #this function not called????
タスク.py
from easy_thumbnails.files import generate_all_aliases
@task
def generate_thumbnails(model, pk, field):
print('Calling gen_thumb task') #not called from models.py
instance = model._default_manager.get(pk=pk)
fieldfile = getattr(instance, field)
generate_all_aliases(fieldfile, include_global=True)
@shared_task
def add(x, y):
print('Calling ad task') #Called from models.py
return x + y
add タスクが呼び出されているのに、generate_thumbnails タスクが呼び出されていないのはなぜですか?