【发布时间】:2026-02-20 16:45:01
【问题描述】:
我的任务是异步导出数据库中的几个大表,因为现在记录量太大,需要太多时间。所以我已经成功地将导出的代码移到了 Celery 任务中。它将文件导出并保存在服务器上的文件夹中。但是我无法从任务中获取整个文件名,我可以将其传递给其余代码,因此在完成导出过程后下载它,因为 Celery 任务唯一可以返回的只是执行结果的状态任务(完成或尚未完成或失败)。我正在使用 Django/Python + Celery + Redis。感谢您的任何建议,它已经与我接壤好几天了。
【问题讨论】:
-
可以添加
celery app的初始化吗? -
您是否尝试使用AsyncResult?
return path_to_file # in celery task -
感谢您为我指明了正确的方向。最终,我尝试了 celery.result 中的 ResultBase,它为我完成了这项工作。对我来说问题显然是任务返回的第一件事是它的 id,然后第二个已经是我需要的参数。
标签: python django celery celery-task