在Django Celery结果中使用临时文件

jam*_*oks 6 python django export temporary-files celery

我正在使用芹菜任务为用户数据生成PDF和Excel导出。这些任务将构建临时文件。这是问题所在。我正在使用NamedTemporaryFile对象,该对象在关闭文件时会自动删除。由于它们在任务结束时关闭,因此它们只是立即消失。

如果将delete属性设置为false,则可以正常工作:

NamedTemporaryFile(delete=False)
Run Code Online (Sandbox Code Playgroud)

但这有一个问题,就是在系统上留下一堆临时文件,我不希望这样。

我总是可以创建一个清理任务,但我希望那里可能会有更好的模式...

谢谢!

duc*_*cky 0

您可以使用StringIO/CStringIO类而不是 NamedTemporaryFile 来捕获 Excel/PDF 文件中的数据并返回其值。StringIO 类的行为方式与普通文件相同。