我有一个使用 Django 的 APIView 类构建的 API,其中包括两个端点:start_report_ Generation 和 get_csv。当我点击start_report_ Generation端点时,它会触发generate_report函数的执行,该函数执行一项耗时的任务,例如生成报告并创建相应的CSV文件。在使用报告 ID 访问 get_csv 端点时,我想检查generate_report4函数是否已完成执行并提供生成的CSV文件作为响应。如果该函数仍在运行,我想返回一个响应,表明它仍在运行。
class TriggerReportView(APIView):
def generate_report(self, request):
report_id = generate_report4()
return Response({'report_id': report_id}, status=status.HTTP_202_ACCEPTED)
class GetReportView(APIView):
def get_csv(self, request):
report_id = req.query_params.get('report_id')
# How can I track the completion of the `generate_report4` function and serve the CSV file?
# How do I handle the case when the function is still running?
return Response({'status': 'Running'}) # Placeholder response for now
or
return Response Response(csv_file, content_type="text/csv")