Python - 同时运行代码

问题描述:

我有一个端点,它获得一些数据,然后运行一些需要大约30秒的代码,然后返回特定于数据的响应。我需要能够在30秒内用不同的数据多次击中端点,但代码仍然需要运行并返回正确的数据特定结果。Python - 同时运行代码

这里就是我的意思是:

class Foo(Controller): 
    def POST(self, **kwargs): 
     [Run Code That Takes 30 Seconds] 
     Return [Result That Changes Bassed off POST request Sent] 

当我现在运行这个权利,我打的端点不止一次在30秒的代码只是用新的数据重新启动并完全忽略旧的数据,它的结果。

我该如何让终端在秒钟内多次被点击,但还是会给出相应的结果?很高兴回答任何问题!

您应该首先分析您的脚本以查看您的任务是否受cpu或io约束。

如果你的任务是IO约束

看一看在ASYNCIO库python 3

或者在线程库python 2 + python 3

如果你的任务是绑定

CPU,如果你的任务是必然的CPU,你不能使用,因为GIL的线程。

您将有选择:

  • 使用多库:python2 + python3

  • 运行python每个cpu核心的实例,每个运行一个不同的任务。

  • 使用像Celery这样的任务队列。