配置GEvent#

参见

gevent.setswitchinterval() 用于其他运行时配置。

class Config[源代码]#

基类:object

Gevent的全局配置。

此对象的一个实例位于 gevent.config . 如果要在代码中进行更改,而不是使用文档化的环境变量,则需要在使用可能需要这些设置的gevent的任何部分之前进行更改。例如::

>>> from gevent import config
>>> config.fileobject = 'thread'

>>> from gevent import fileobject
>>> fileobject.FileObject.__name__
'FileObjectThread'

在 1.3a2 版本加入.

property ares_servers#

为ARES解析器提供名称服务器IP地址的字符串列表。

在环境变量中,这些字符串由逗号分隔。

自 1.3a2 版本弃用: 喜欢 resolver_nameservers 设置。如果两个都设置了,则不会定义结果。

默认值为 None

环境变量 GEVENTARES_SERVERS 可以用来控制这个。

property ares_timeout#

自 1.3a2 版本弃用: 喜欢 resolver_timeout 设置。如果两个都设置了,则不会定义结果。

默认值为 None

环境变量 GEVENTARES_TIMEOUT 可以用来控制这个。

property disable_watch_children#

我们应该吗 not 用事件循环监视程序监视子级?

这是高级设置。

gevent.os 详细描述。

这是一个布尔值。

在环境变量中,可以将其指定为 1trueonyes 对于 True0falseoffno 对于 False .

默认值为 False

环境变量 GEVENT_NOWAITPID 可以用来控制这个。

property fileobject#

那种 FileObject 我们将使用。

gevent.fileobject 详细描述。

这是一个重要的价值。它可以作为一个命名可导入对象的字符串,或者按优先顺序排列的字符串列表提供,并且将使用第一个成功导入的对象。(使用逗号分隔环境变量中的值。)它也可以作为可调用对象本身(在代码中)提供。默认对象的简写名称为 ['thread'、'posix'、'block']

默认值为 ['posix', 'thread']

环境变量 GEVENT_FILE 可以用来控制这个。

property format_context#

这是一个重要的价值。它可以作为一个命名可导入对象的字符串,或者按优先顺序排列的字符串列表提供,并且将使用第一个成功导入的对象。(使用逗号分隔环境变量中的值。)它也可以作为可调用对象本身(在代码中)提供。

默认值为 pprint.saferepr

环境变量 GEVENT_FORMAT_CONTEXT 可以用来控制这个。

property libev_backend#

libev的后端,如“select”

默认值为 None

环境变量 GEVENT_BACKEND 可以用来控制这个。

property loop#

我们使用的循环类型。

在Windows上,它默认为libuv,而在其他平台上,它默认为libev。

这是一个重要的价值。它可以作为一个命名可导入对象的字符串,或者按优先顺序排列的字符串列表提供,并且将使用第一个成功导入的对象。(使用逗号分隔环境变量中的值。)它也可以作为可调用对象本身(在代码中)提供。默认对象的简写名称为 ['libev-cext', 'libev-cffi', 'libuv-cffi', 'libuv']

默认值为 ['libev-cext', 'libev-cffi', 'libuv-cffi']

环境变量 GEVENT_LOOP 可以用来控制这个。

property max_blocking_time#

如果 monitor_thread 如果启用,这大约是在发出警告之前允许事件循环阻塞的时间(秒)。

此函数取决于使用 greenlet.settrace ,因此,在启动监视线程后安装自己的跟踪函数将导致此功能行为错误,除非调用由返回的函数 greenlet.settrace . 如果安装跟踪函数 之前 监视线程已启动,仍将调用它。

备注

如果不太可能在短时间内在同一个本机线程中创建和使用多个不同的gevent集线器,特别是在不破坏集线器的情况下,可能会报告误报。

在 1.3b1 版本加入.

默认值为 0.1

环境变量 GEVENT_MAX_BLOCKING_TIME 可以用来控制这个。

property max_memory_usage#

如果 monitor_thread 如果启用,则如果内存使用量超过此数量(以字节为单位),则将发出事件。见 gevent.events . 在环境变量中,可以使用后缀“kb”、“mb”或“gb”指定值(以千字节、兆字节或千兆字节为单位)。

此设置没有默认值。如果要限制内存使用,必须选择一个值。

默认值为 None

环境变量 GEVENT_MONITOR_MEMORY_MAX 可以用来控制这个。

property memory_monitor_period#

如果 monitor_thread 启用后,这大约是检查进程内存使用情况之间的时间间隔(以秒为单位)。

在某些操作系统上检查内存使用情况相对比较昂贵,因此这不应该太低。Gevent将在其上放置一个下限值。

默认值为 5

环境变量 GEVENT_MONITOR_MEMORY_PERIOD 可以用来控制这个。

property monitor_thread#

每个集线器应该启动一个本地OS线程来监视问题吗?

这样的线程将定期检查事件循环是否被阻塞超过 max_blocking_time ,如果检测到此情况,则在集线器的异常流(默认情况下为stderr)上生成输出。

如果此设置为真,那么将在第一次切换集线器时创建此线程,或者可以调用 gevent.hub.Hub.start_periodic_monitoring_thread() 在任何时候创建它(从运行集线器的同一线程)。该函数将返回 gevent.events.IPeriodicMonitorThread 您可以在其中添加自己的监视功能。该函数还发出 gevent.events.PeriodicMonitorThreadStartedEvent .

在 1.3b1 版本加入.

这是一个布尔值。

在环境变量中,可以将其指定为 1trueonyes 对于 True0falseoffno 对于 False .

默认值为 False

环境变量 GEVENT_MONITOR_THREAD_ENABLE 可以用来控制这个。

property resolver#

将用于创建 gevent.hub.Hub.resolver .

名称解析(DNS) 更多信息。

这是一个重要的价值。它可以作为一个命名可导入对象的字符串,或者按优先顺序排列的字符串列表提供,并且将使用第一个成功导入的对象。(使用逗号分隔环境变量中的值。)它也可以作为可调用对象本身(在代码中)提供。默认对象的简写名称为 [“ares”、“thread”、“block”、“dnspython”]

默认值为 ['thread', 'dnspython', 'ares', 'block']

环境变量 GEVENT_RESOLVER 可以用来控制这个。

property resolver_nameservers#

为(非系统)冲突解决程序提供名称服务器IP地址的字符串列表。

在环境变量中,这些字符串由逗号分隔。

分解器行为

  • 舞台调度

    忽略

  • 线程的

    忽略

  • dnspython公司

    如果未提供此设置,Dnspython解析程序将加载要从中使用的名称服务器 /etc/resolv.conf 或Windows注册表。此设置将替换从这些方法中读取的任何名称服务器。请注意,对于其他设置,仍会读取文件和注册表。

    小心

    Dnspython不验证列表成员。不正确的地址(如主机名而不是IP)会导致未定义的结果,包括挂起进程。

  • 阿瑞斯

    类似于dnspython,但是有更多的平台和编译时选项。ARES验证列表中的成员是有效地址。

默认值为 None

环境变量 GEVENT_RESOLVER_NAMESERVERS 可以用来控制这个。

property resolver_timeout#

DNS解析程序进行查询所花费的总时间。

只有战神和dnspython解析器支持这一点。

在 1.3a2 版本加入.

默认值为 None

环境变量 GEVENT_RESOLVER_TIMEOUT 可以用来控制这个。

property threadpool#

我们使用的那种线程工具。

这是一个重要的价值。它可以作为一个命名可导入对象的字符串,或者按优先顺序排列的字符串列表提供,并且将使用第一个成功导入的对象。(使用逗号分隔环境变量中的值。)它也可以作为可调用对象本身(在代码中)提供。

默认值为 gevent.threadpool.ThreadPool

环境变量 GEVENT_THREADPOOL 可以用来控制这个。

property threadpool_idle_task_timeout#

允许默认线程池(默认情况下用于DNS)中的线程在退出前空闲多长时间。

使用-1表示无超时。

在 22.08.0 版本加入.

缺省值为 5.0

环境变量 GEVENT_THREADPOOL_IDLE_TASK_TIMEOUT 可以用来控制这一点。

property trace_malloc#

外国金融机构对象是否应跟踪其分配?

这只对低级调试有用。

在python 3上,这个环境变量内置于解释器中,也可以用 -X tracemalloc 命令行参数。

在python 2上,gevent解释这个参数,并为ffi对象添加额外的跟踪信息。

默认值为 False

环境变量 PYTHONTRACEMALLOC 可以用来控制这个。

property track_greenlet_tree#

应该 Greenlet 物体跟踪它们的产卵树?

将其设置为FALSE值将生成 Greenlet 对象和使用 spawn_raw 更快,但 spawning_greenletspawn_tree_localsspawning_stack 不会被抓获。将其设置为False值还可以减少内存使用,因为捕获堆栈会捕获有关Python帧的一些信息。

在 1.3b1 版本加入.

这是一个布尔值。

在环境变量中,可以将其指定为 1trueonyes 对于 True0falseoffno 对于 False .

默认值为 True

环境变量 GEVENT_TRACK_GREENLET_TREE 可以用来控制这个。