gpt4 book ai didi

python - 处理 Django 长时间运行的上游请求的最快、最简单的方法

转载 作者:太空宇宙 更新时间:2023-11-03 18:35:28 27 4
gpt4 key购买 nike

我正在将 Django 与 Uwsgi 一起使用。我们有 8 个进程正在运行,而且我没有真正的迹象表明我们的代码特别线程安全,因为它在设计时从未考虑到线程。

最近,我们增加了通过服务供应商的各种 API 获取实时费率并立即向用户显示的功能。问题是这些请求是旧的 Web 服务技术,并且由于其响应时间,从供应商获取(或放弃)所有费率之前所需的时间可能长达 10 秒。

这提出了一个问题。我们的网站上有相当多的流量,客户需要经常查看这些费率。由于只有 8 个进程,很容易看出服务器如何忙于等待这些上游请求。尤其是当需要进行其他优化以使网站基线更快时(我们正在努力)。

我们为请求的速率创建了一个单独的库(它应该主要是线程安全的,如果不是,应该很容易转换为它),并且我们可以分离出它的配置。因此,我正在考虑创建一个具有自己线程的单独服务(也许在 Twisted 中),并让浏览器联系该服务以获取 JSON,而不是让它在主 Django 服务器中运行。

这个解决方案好吗?你能想出更好或更简单的方法吗?我应该使用 Twisted 以外的其他东西吗?如果是,为什么?

最佳答案

如果你想在 Django 中使用你的代码,你可以简单地使用 Crochet 调用你的 Twisted。 ,它可以在您选择的任何 WSGI 实现中自动管理 react 器的创建、运行和关闭(至少假设它的行为类似于常规 Python 进程)。

显然,在 Twisted WSGI 容器中运行可能不会那么复杂:-)。

也许也值得一看 TReq发出您的服务客户请求;你的新“线程安全”库仍然存在为每个阻塞客户端占用整个线程的缺点,这是一个不小的内存量和额外的并发开销,而使用 Twisted 你只需要担心几个对象。

关于python - 处理 Django 长时间运行的上游请求的最快、最简单的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21662199/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com