我在Uwsgi中使用Django。我们有8个进程正在运行,并且我没有真正的迹象表明我们的代码特别线程安全,因为它从来没有考虑线程设计。
最近,我们增加了通过服务提供商的各种API获取服务提供商实时费率并立即向用户显示的功能。问题在于这些请求是旧的Web服务技术,由于它们的响应时间长,从供应商那里获得所有费率(或放弃)所需要的时间可能长达10秒。
这带来了问题。我们网站上的流量相当不错,客户需要经常查看这些费率。仅用8个进程,就很容易看到如何绑定服务器以等待这些上游请求。尤其是在需要进行其他优化以使网站基准速度更快时(我们正在为此努力)。
我们为请求速率创建了一个单独的库(应该主要是线程安全的,如果不是,应该足够容易地转换为它),我们可以分离出它的配置。因此,我正在考虑使用自己的线程(可能是在Twisted中)创建一个单独的服务,并让浏览器针对JSON与该服务联系,而不是在主Django服务器中运行该服务。
这个解决方案好吗?您能想到更好或更简单的方法吗?我是否应该使用“扭曲”以外的其他东西?如果是,为什么?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句