gevent.events
--发布/订阅事件基础结构#
发布/订阅事件基础结构。
当某些“有趣”的事情在流程的生命周期中发生时,gevent将“发布”一个事件(一个对象)。该事件将传递给感兴趣的“订户”(接受一个参数的函数,即事件对象)。
更高层次的框架可以以此为基础,并在其上建立更丰富的模型。
zope.event
将用于提供 notify
and subscribers
. See zope.event.classhandler
for a simple class-based approach to subscribing to a filtered list of events, and see zope.component 对于更高层次、更灵活的系统。如果您使用其中一个系统,通常不希望直接修改 subscribers
.
在 1.3b1 版本加入.
在 23.7.0 版本发生变更: 现在使用 importlib.metadata
而不是 pkg_resources
来定位入口点。
- interface IEventLoopBlocked[源代码]#
当事件循环被阻塞时发出的事件。
此事件在监视器线程中发出。
- greenlet#
绿色小轮似乎阻塞了环路。
- blocking_time#
循环被阻塞的大约时间(秒)。
- info#
提供额外信息的字符串序列。
- interface IGeventDidPatchAllEvent[源代码]#
延伸:
gevent.events.IGeventDidPatchEvent
在gevent修补了所有模块(包括内置模块和插件/订户提供的模块)之后发出的事件。
的值 来源 和 目标 属性未定义。
- interface IGeventDidPatchBuiltinModulesEvent[源代码]#
延伸:
gevent.events.IGeventDidPatchEvent
发出的事件 之后 内置模块已修补。
如果您要对第三方库进行monkey-patch,这通常是需要监听的事件。
的值 来源 和 目标 属性未定义。
- patch_all_arguments#
所有参数的字典
gevent.monkey.patch_all
. 不应修改此词典。
- patch_all_kwargs#
一本关于
gevent.monkey.patch_all
. 不应修改此词典。
- interface IGeventDidPatchEvent[源代码]#
延伸:
gevent.events.IGeventPatchEvent
发出的事件 之后 Gevent修补了一些东西。
- interface IGeventDidPatchModuleEvent[源代码]#
延伸:
gevent.events.IGeventDidPatchEvent
发出的事件 之后 Gevent已完成对特定模块的修补。
- module_name#
正在修补的模块的名称。这和
target.__name__
.
- interface IGeventWillPatchAllEvent[源代码]#
延伸:
gevent.events.IGeventWillPatchEvent
发出的事件 之前 Gevent开始修补系统。
在此事件之后将是一系列
IGeventWillPatchModuleEvent
和IGeventDidPatchModuleEvent
对于每个补丁模块。处理完GEvent内置模块后,
IGeventDidPatchBuiltinModulesEvent
将被发射。处理此事件是导入和修补第三方模块(可能触发自己的will/do修补模块事件)的理想时间。最后,A
IGeventDidPatchAllEvent
将被发送。如果此事件的订阅服务器引发
DoNotPatch
,不进行修补。这个 来源 和 目标 属性具有未定义的值。
- patch_all_arguments#
所有参数的字典
gevent.monkey.patch_all
. 不应修改此词典。
- patch_all_kwargs#
一本关于
gevent.monkey.patch_all
. 不应修改此词典。
- will_patch_module(module_name)#
返回名为 module_name 将被修补。
- interface IGeventWillPatchEvent[源代码]#
延伸:
gevent.events.IGeventPatchEvent
发出的事件 之前 格凡特猴子修补东西。
如果订阅服务器引发
DoNotPatch
,则不会修补此特定项目。
- interface IGeventWillPatchModuleEvent[源代码]#
延伸:
gevent.events.IGeventWillPatchEvent
发出的事件 之前 Gevent开始修补特定模块。
两个 来源 和 目标 属性是模块对象。
- module_name#
正在修补的模块的名称。这和
target.__name__
.
- target_item_names#
要修补的项名称列表。这可以在适当的地方小心地修改。
- interface IMemoryUsageThresholdExceeded[源代码]#
超过内存使用阈值时发出的事件。
只有当内存继续增长到阈值以上时,才会发出此事件。只有当状态或稳定状态得到纠正(内存使用率下降)后,事件才会在将来发出。
此事件在监视器线程中发出。
- mem_usage#
当前进程内存使用量(字节)。
- max_allowed#
允许的最大内存使用量(字节)。
- memory_info#
psutil返回内存使用状态的元组。
- interface IMemoryUsageUnderThreshold[源代码]#
当内存使用率在以前高于阈值后低于阈值时发出的事件。
此事件仅在首次检测到内存使用量低于阈值(之前高于阈值)时发出。如果内存使用率再次上升,则
IMemoryUsageThresholdExceeded
将广播事件,然后可以再次广播此事件。此事件在监视器线程中发出。
- mem_usage#
当前进程内存使用量(字节)。
- max_allowed#
允许的最大内存使用量(字节)。
- max_memory_usage#
导致上一个IMemoryUsageThresholdExceeded事件的内存使用情况。
- memory_info#
psutil返回内存使用状态的元组。
- interface IPeriodicMonitorThread[源代码]#
由集线器启动的定期监视线程的协定。
- add_monitoring_function(function, period)#
安排 功能 大约每 时期 分数秒。
这个 功能 接收一个参数,正在监视集线器。在监视线程中调用, not 轮毂螺纹。它 不能 尝试使用gevent异步API。
如果 功能 已经是一个监视函数,然后 时期 将更新以供将来运行。
如果 时期 是
None
,则该功能将被删除。A 时期 不允许小于或等于零。
- interface IPeriodicMonitorThreadStartedEvent[源代码]#
集线器启动定期监视线程时发出的事件。
您可以使用此事件添加其他监视功能。
- monitor#
的实例
IPeriodicMonitorThread
开始了。
- class EventLoopBlocked(greenlet, blocking_time, info)[源代码]#
基类:
object
当事件循环被阻塞时发出的事件。
器具
IEventLoopBlocked
.
- class GeventDidPatchAllEvent(patch_all_arguments, patch_all_kwargs)[源代码]#
基类:
_PatchAllMixin
,GeventDidPatchEvent
- ENTRY_POINT_NAME = 'gevent.plugins.monkey.did_patch_all'#
发出此事件时调用的SETUPTOOLS入口点的名称。
- class GeventDidPatchBuiltinModulesEvent(patch_all_arguments, patch_all_kwargs)[源代码]#
基类:
_PatchAllMixin
,GeventDidPatchEvent
执行
IGeventDidPatchBuiltinModulesEvent
.- ENTRY_POINT_NAME = 'gevent.plugins.monkey.did_patch_builtins'#
发出此事件时调用的SETUPTOOLS入口点的名称。
- class GeventDidPatchModuleEvent(module_name, source, target)[源代码]#
基类:
GeventDidPatchEvent
执行
IGeventDidPatchModuleEvent
.- ENTRY_POINT_NAME = 'gevent.plugins.monkey.did_patch_module'#
发出此事件时调用的SETUPTOOLS入口点的名称。
- class GeventPatchEvent(source, target)[源代码]#
基类:
object
执行
IGeventPatchEvent
.
- class GeventWillPatchAllEvent(patch_all_arguments, patch_all_kwargs)[源代码]#
基类:
_PatchAllMixin
,GeventWillPatchEvent
- ENTRY_POINT_NAME = 'gevent.plugins.monkey.will_patch_all'#
发出此事件时调用的SETUPTOOLS入口点的名称。
- class GeventWillPatchModuleEvent(module_name, source, target, items)[源代码]#
-
执行
IGeventWillPatchModuleEvent
.- ENTRY_POINT_NAME = 'gevent.plugins.monkey.will_patch_module'#
发出此事件时调用的SETUPTOOLS入口点的名称。
- class MemoryUsageThresholdExceeded(mem_usage, max_allowed, memory_info)[源代码]#
基类:
_AbstractMemoryEvent
- class MemoryUsageUnderThreshold(mem_usage, max_allowed, memory_info, max_usage)[源代码]#
基类:
_AbstractMemoryEvent
- class PeriodicMonitorThreadStartedEvent(monitor)[源代码]#
基类:
object
实施
IPeriodicMonitorThreadStartedEvent
.- ENTRY_POINT_NAME = 'gevent.plugins.hub.periodic_monitor_thread_started'#
发出此事件时调用的SETUPTOOLS入口点的名称。
- subscribers = []#
应用程序可以通过在
subscribers
名单。订阅服务器的每个事件都是一个已发布的对象。
订阅服务器引发的异常将被传播 没有 正在运行任何剩余的订阅服务器。
这是的别名
zope.event.subscribers
;更喜欢直接使用该属性。