我似乎无法确定如何在Python中创建文件,然后传递对文件的引用,以便将其转换为不同的图像分辨率。
我正在使用Celery以异步方式生成这些不同的图像分辨率,并且传递整个图像会消耗太多内存,最终导致内存不足错误。
关于如何实现这一目标的任何建议?以下是一些插图代码:
file_object = open('/tmp/image.jpg', 'w+')
with api.fetch_remote_file() as f:
file_object.write(f.read())
file_object.seek(0)
# Pass a file object through a chain of functions to generate new images
chain = generate_images.s(file_object, "high") | generate_images.s(file_object, "medium") | delete_temp(file_object)
chain()
# A Celery task to process images asynchronously from a queue
@app.task
def generate_images(file_object, quality):
#Convert the image to a lower resolution and store it
image = convert(file_object.read())
return file_object, image
答案 0 :(得分:1)
您可以将文件的绝对路径传递给芹菜工人。然后让工作人员打开文件,然后阅读内容。