将图像传递给芹菜任务

wha*_*hat 7 django django-models celery

我正在编写的应用程序的一部分允许用户上传图像,然后我调整图像大小并自动上传到亚马逊 s3。目前,图像大小调整正在视图中进行,我想通过 celery 将其卸载给分布式工作人员。我的问题是将图像提供给工作人员的最佳方法是什么。我目前的想法是将图像直接存储在数据库中,然后将 id 传递给工作人员并让它检索它。有没有更好的做法然后将它临时存储在数据库中直到它可以被处理?

hym*_*oth 5

正如 celery 文档中所述,最好不要将整个事物(图像)作为参数传递,因为这会导致额外的开销。因此,最好首先保存它,然后将照片 ID 作为参数传递,将图像检索到任务中并调整大小/上传。