我正在编写的应用程序的一部分允许用户上传图像,然后我调整大小并自动上传到amazon s3。目前,图像调整大小正在视图中发生,我想通过芹菜将其卸载到分布式工作人员。我的问题是什么是将图像传递给工人的最佳方式。我目前的想法是将图像直接存储在数据库中,然后将id传递给worker并让它检索它。有没有更好的做法然后暂时将其存储在数据库中,直到它可以被处理?
答案 0 :(得分:2)
如芹菜文档中所述,最好不要将整个事物(图像)作为参数传递,因为这会导致额外的开销。因此最好先保存它,然后将照片ID作为参数传递,将图像检索到任务中并进行调整大小/上传。
答案 1 :(得分:1)
您无法将实际图像传递给Celery,因为无法对图像进行腌制,但您可以解构图像并将其所有数据发送给芹菜工作者,您可以轻松地重建图像然后随意执行任何操作它。
我构建了一个小应用程序,可以将图像保存卸载到工作人员,将它分叉并添加自己的大小调整并不是太难。查看https://github.com/gterzian/django_async