:使用Python的gevent记录跨多个运行的协同例程/微线程/Greenlet的事件的最佳方法是什么?
我想要记录的示例事件可能包括创建新连接或删除到套接字服务器的连接。
按照这种思路,“衍生”的共同例程是否有可能登录到同一个文件?由于对该文件的潜在并发写入尝试,这是否也是明智的?
发布于 2011-08-03 16:57:11
如果这只是一个进程,那么不可能,他们不可能同时写。Greenlet都运行在同一个OS线程中,并且是协同调度的,一次只能运行一个。
with open('log', 'w') as log:
jobs = [gevent.spawn(log.write, 'event %d' % i) for i in range(10)]
gevent.joinall(jobs)...would的结果是一个接一个地向日志写入绿地。
如果您有多个进程,我建议登录到redis,或者使用零q登录到专用守护进程。或者使用其他外部日志记录守护进程。
https://stackoverflow.com/questions/6929902
复制相似问题