繁体   English   中英

如何在 Python 中创建一个对象池?

[英]How can I create a pool of objects in Python?

我需要以平衡的方式(向每个服务发送相同数量的请求)将传入请求分派到一组连接的服务(比如一个Service类)。

我想我可以像使用数据库连接池那样做这件事,所以我实现了一个简单的池:

from service import Service

class ServicePool:
    services: list[Service]
    index: int

    def __init__(self, services: list[Service]):
        self.index = 0
        self.services = services

    def get_next(self) -> Service:
        try:
            return self.services[self.index]
        except IndexError:
            return None
        finally:
            if self.index < len(self.services) - 1:
                self.index += 1
            else:
                self.index = 0

我有几个问题:

  1. 我是不是想多了? 我可以在标准库中使用一个简单的数据结构吗?
  2. 总的来说这是个好主意吗?

如果你在Python创建了一个对象池,你可以试试这个库:

Pond 是 Python 的高性能对象池库,它具有较小的 memory 使用率和较高的借用命中率。

https://github.com/T-baby/pondpond

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM