在 Django Celery 结果中使用临时文件
Posted
技术标签:
【中文标题】在 Django Celery 结果中使用临时文件【英文标题】:Using Temporary files in Django Celery Results 【发布时间】:2013-06-10 05:46:05 【问题描述】:我正在使用 celery 任务为用户数据生成 PDF 和 Excel 导出。这些任务构建临时文件。这就是问题所在。我正在使用NamedTemporaryFile 对象,它会在文件关闭时自动删除。由于它们在任务结束时关闭,因此它们会立即消失。
如果我将 delete 属性设置为 false,我可以让它工作:
NamedTemporaryFile(delete=False)
但这有在系统上留下一堆临时文件的问题,这是我不想要的。
我总是可以创建一个清理任务,但我希望那里可能有更好的模式......
谢谢!
【问题讨论】:
您希望何时删除这些文件? 生成文件后如何处理? 【参考方案1】:您可以使用 StringIO/CStringIO 类而不是 NamedTemporaryFile 从 Excel/PDF 文件中捕获数据并返回其值。 StringIO 类的行为方式与普通文件相同。
【讨论】:
以上是关于在 Django Celery 结果中使用临时文件的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Django 视图中使用 celery 存储延迟调用的结果?
在 Django 中使用 Celery 设置结果后端(rpc)