【问题标题】:Python - Run Code SimultaneouslyPython - 同时运行代码
【发布时间】:2016-04-24 20:03:30
【问题描述】:

我有一个端点,它获取一些数据,然后运行一些需要大约 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 秒内不止一次点击端点时,代码只是使用新数据重新启动,并完全忽略旧数据及其结果。

我怎样才能让端点在几秒钟内多次被击中,但仍然返回相应的结果?很高兴回答任何问题!

【问题讨论】:

    标签: python post endpoint


    【解决方案1】:

    您应该首先分析您的脚本,以查看您的任务是 cpu 还是 io 绑定。

    如果你的任务是 io 绑定的

    看看异步库python 3

    或者在线程库python 2 + python 3

    如果您的任务受 CPU 限制

    如果你的任务是 CPU 绑定的,你不能使用线程,因为 GIL

    您可以选择:

    • 使用多处理库:python2 + python3

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

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

    【讨论】:

      猜你喜欢
      • 2017-04-25
      • 1970-01-01
      • 2021-03-20
      • 1970-01-01
      • 1970-01-01
      • 2013-07-17
      • 2014-07-14
      • 1970-01-01
      • 2019-11-11
      相关资源
      最近更新 更多