gpt4 book ai didi

python - Pyramid 中请求之外的自定义事件

转载 作者:行者123 更新时间:2023-11-28 19:17:14 24 4
gpt4 key购买 nike

我试图在我的应用程序的 __init__ 方法中通知我的自定义事件,并在应用程序的包含部分中捕获/订阅它。但由于某种原因,导入代码中的订阅者没有被调用。如果在相同的导入代码中我订阅了 Pyramid 事件,一切正常。这是代码示例。

__init__.py

class MyEvent(object): pass

def main(...):
...
config.include('some_module')
config.registry.notify(MyEvent())
...

some_module.py

def handle_event(e):
print 'event', e

def includeme(config):
print 'module included'
config.add_subscriber(handle_event, 'myapp.MyEvent')

打印了 module included 行,但没有打印 event 行。这就是 Pyramid 中通知/订阅的工作方式吗?代码中某处有错误吗?谢谢

最佳答案

config.include() 之后,您必须在 之前使用 config.commit() 显式提交 Configurator config.add_subscriber(...) 将被添加到内部注册表以供使用。

换句话说,当前当您调用 .notify(...) 时,还没有注册该事件的订阅者。

关于python - Pyramid 中请求之外的自定义事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32166839/

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