gpt4 book ai didi

python - 使用 Gevent 记录多个协程/greenlets/微线程?

转载 作者:太空宇宙 更新时间:2023-11-03 11:10:05 25 4
gpt4 key购买 nike

使用 Python 的 gevent 记录跨越多个正在运行的协程/微线程/Greenlets 的事件的最佳方法是什么?

我想记录的示例事件可能包括创建新连接或断开与套接字服务器的连接。

沿着这个思路——“生成”的协同例程是否有可能记录到同一个文件?由于对该文件的潜在并发写入尝试,这甚至是可取的吗?

最佳答案

如果这只是单个进程,那么不,它们不可能同时写入。 Greenlets 都运行在同一个 OS 线程中并协同调度,一次只能运行一个。

with open('log', 'w') as log:
jobs = [gevent.spawn(log.write, 'event %d' % i) for i in range(10)]
gevent.joinall(jobs)

...将导致 greenlets 一个接一个地写入日志。

如果您有多个进程,我建议登录到 redis ,或者可能使用 zeromq登录到专用守护进程。或者使用其他一些外部日志守护进程。

关于python - 使用 Gevent 记录多个协程/greenlets/微线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6929902/

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