gpt4 book ai didi

plone - 使用 z3c.saconfig 时是否可以使用 NullPool 而不是 QueuePool?

转载 作者:行者123 更新时间:2023-12-02 06:06:55 24 4
gpt4 key购买 nike

我有 Zope/Plone 4.3 环境,我们使用 z3c.saconfig 在内部产品中配置数据库 (Oracle) 设置。

我需要将常用的 SQLAlchemy 池类型从 QueuePool 更改为 NullPool。但是,有没有办法使用 z3c.saconfig 来做到这一点?

最佳答案

z3c.saconfig 将创建 SQLAlchemy 引擎委托(delegate)给 IEngineFactory 实用程序;请参阅interface source .

您可以创建自己的子类来注册为 local utility 。您的子类可以重用现有的实用程序实现,覆盖 configuration() method :

from persistent import Persistent
from z3c.saconfig.utility import EngineFactory
from sqlalchemy.pool import NullPool

class NullPoolEngineFactory(Persistent, EngineFactory)
def configuration(self):
kwargs = self._kw.copy()
kwargs['poolclass'] = NullPool
return self._args, kwargs

上面通过添加 poolclass argument 来增强 sqlalchemy.create_engine() 函数的参数。 .

您可以将此实用程序注册为 GenericSetup 配置文件中的组件:

<?xml version="1.0"?>
<componentregistry>
<utilities>
<utility
interface="z3c.saconfig.interfaces.IEngineFactory"
factory="yourproject.yourmodule.NullPoolEngineFactory"/>
</utilities>
</componentregistry>

运行通用设置配置文件后,这会注册该实用程序的持久版本,并且将找到它而不是默认的全局实用程序。

关于plone - 使用 z3c.saconfig 时是否可以使用 NullPool 而不是 QueuePool?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25334065/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com