Django 如何处理另一个请求中的长请求?
How Django handling long request in another request?
关于 django 在另一个请求(3 秒)中处理一个长请求(50 秒)的问题。
我有一个 POST 请求将为用户 return 一些信息,在这个请求中将在同一个应用程序中调用另一个 api 然后它将查询数据库并生成 pdf 报告上传到s3,大约需要50秒。
我怎样才能让用户首先请求 return 信息并在后台生成 pdf api 运行?
我做了一些研究,发现 Celery 可能可以处理这个任务,这个推荐吗?或者有人有建议吗?
提前致谢!!!
是的,这是您引入 celery, rq, or huey 等解决方案的地方。
在后端,您将使用像 redis 这样的服务器,它存储您安排的作业的状态(以及它们是否出错)。
以上3种,我强烈推荐芹菜。它存在的时间更长,并且对 sentry 和 Scout APM 等服务具有更好的遥测能力。
首先,这是 First steps with Django on celery documentation website and its sample django project on GitHub 的 link。
进入工作心态
关于 django 在另一个请求(3 秒)中处理一个长请求(50 秒)的问题。
我有一个 POST 请求将为用户 return 一些信息,在这个请求中将在同一个应用程序中调用另一个 api 然后它将查询数据库并生成 pdf 报告上传到s3,大约需要50秒。
我怎样才能让用户首先请求 return 信息并在后台生成 pdf api 运行?
我做了一些研究,发现 Celery 可能可以处理这个任务,这个推荐吗?或者有人有建议吗?
提前致谢!!!
是的,这是您引入 celery, rq, or huey 等解决方案的地方。
在后端,您将使用像 redis 这样的服务器,它存储您安排的作业的状态(以及它们是否出错)。
以上3种,我强烈推荐芹菜。它存在的时间更长,并且对 sentry 和 Scout APM 等服务具有更好的遥测能力。
首先,这是 First steps with Django on celery documentation website and its sample django project on GitHub 的 link。
进入工作心态