【发布时间】:2015-02-13 03:42:00
【问题描述】:
我已经使用 Python asyncio 和 aiohttp 成功构建了一个 RESTful microservice,它侦听 POST 事件以收集来自各种 feeder 的实时事件。
然后它会构建一个内存结构,以在嵌套的 defaultdict/deque 结构中缓存最近 24 小时的事件。
现在我想定期检查该结构到磁盘,最好使用pickle。
由于内存结构可能 >100MB,因此我希望避免在检查点结构所需的时间内暂停我的传入事件处理。
我宁愿创建结构的快照副本(例如 deepcopy),然后花时间将其写入磁盘并在预设的时间间隔内重复。
我一直在寻找有关如何组合线程(线程甚至是最好的解决方案吗?)和 asyncio 用于此目的的示例,但找不到对我有帮助的东西。
非常感谢任何入门指南!
【问题讨论】:
-
我使用了 dano 的建议并构建了一个非常简单的多线程设置,该设置每 60 秒检查一次内存中的事件存储到磁盘。这是包含整个逻辑的 git repo 文件的链接:github.com/fxstein/SentientHome/blob/master/engine/…
标签: python multithreading python-asyncio aiohttp