Tôi gặp sự cố khi xây dựng hàm đuôi gevent. Nói chung, mã hoạt động khi tôi nhận xét gevent.sleep trong vòng lặp, nhưng sau đó sử dụng CPU là 100%. Khi tôi rời khỏi chương trình gevent.sleep hoạt động nhưng không có gì xảy ra. Phiên bản Gevent là 1.0b1.Cách kết nối tệp với gevent
import os
import gevent
def follow(filename):
fd = os.open(filename, os.O_RDONLY|os.O_NONBLOCK)
os.lseek(fd, 0, os.SEEK_END)
hub = gevent.get_hub()
watcher = hub.loop.io(fd, 1)
while True:
hub.wait(watcher)
lines = os.read(fd, 4096).splitlines()
if not lines:
#gevent.sleep(.1)
continue
else:
for line in lines:
print "%s:%s" % (filename, line)
os.close(fd)
if __name__ == '__main__':
job1 = gevent.spawn(follow, '/var/log/syslog')
job2 = gevent.spawn(follow, '/var/log/messages')
gevent.joinall([job1, job2])
Nếu bạn tìm thấy một câu trả lời, gửi nó như một câu trả lời (và chấp nhận nó một lần bạn có thể) – MByD