Nic*_*ole 4 python python-asyncio
我承认自己非常懒惰:我需要相当快地做到这一点,并且无法理解Python3 asyncio模块.(有趣的是,我发现这个提升非常直观.)
我需要读取一个将不时阻塞的文件对象(管道).在此期间,我希望能够以设定的间隔(例如每30分钟)启动另一个活动,无论从文件中读取任何内容的可用性.
任何人都可以使用python3 asyncio帮助我使用骨架吗?(我无法安装第三方模块,如twisted.)
asyncio(以及其他异步库,如twisted和tornado)不支持文件的非阻塞IO - 只有套接字和管道是异步处理的.
主要原因是:Unix系统没有很好的方法来处理文件.比方说,在Linux上,任何文件读取都是阻塞操作.
另请参阅https://groups.google.com/forum/#!topic/python-tulip/MvpkQeetWZA
UPD.
对于计划定期活动,我想使用asyncio.Task:
@asyncio.coroutine
def periodic(reader, delay):
data = yield from reader.read_exactly(100) # read 100 bytes
yield from asyncio.sleep(delay)
task = asyncio.Task(reader, 30*60)
Run Code Online (Sandbox Code Playgroud)
Snippet假设reader是asyncio.StreamReader实例.
| 归档时间: |
|
| 查看次数: |
1481 次 |
| 最近记录: |