我有一个端点,它获取一些数据,然后运行一些代码,大约需要30秒,然后返回一个特定于数据的响应。我需要能够在30秒内用不同的数据多次命中端点,但是代码仍然需要运行并返回正确的特定于数据的结果。你知道吗
我的意思是:
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。
每个cpu核运行一个python实例,每个实例运行一个不同的任务。
使用类似于Celery的任务队列。
相关问题 更多 >
编程相关推荐