我有一个单一的模糊匹配方法,大约需要5秒才能完成。我被要求模拟许多并行请求(为此,我使用jMeter )。当我这样做时,所需的时间与请求量成线性关系。
有没有办法让这个方法一次运行很多次,以提高API的速度?
我研究了多处理和线程,但这似乎适用于同时运行两个方法。不是在多个API请求上并发的单个方法。
def fuzzy_match():
#do 5-7 second calculation正如我上面提到的,我想要一个API来更快地运行对此方法的并行请求。现在,我正在同时进行5个呼叫,但需要25秒才能完成。
我应该提一下,我是在开发服务器上运行这些程序的。这就是问题所在吗?任何建议都将不胜感激。
发布于 2019-08-23 07:39:56
是的,您需要使用适当的wsgi服务器运行应用程序。据我所知,flask Dev服务器不是多线程的。我建议安装gunicorn并使用多个工作线程运行它,这将允许对模糊匹配的并发调用。同样值得注意的是,长时间运行的任务有时应该推给像celery这样的异步服务,以避免web服务器过载。
https://stackoverflow.com/questions/57617980
复制相似问题