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