延迟Python处理

时间:2011-08-17 22:09:30

标签: python twisted boto gevent eventlet

我正在尝试以非阻塞方式编写事件,以免减慢任何现有流程。似乎有两种选择:

  • 使用Twisted的defer对象
  • 创建一个python logging处理程序

还有其他选择吗?有人有这方面的经验吗?

背景:我们计划将事件写入亚马逊的CloudWatch服务,我担心执行PUT请求的延迟。如果这改变了答案,我实际上并不关心失去一些PUT(我们正在为警报目的编写事件,并且无论如何它们都将在一周之后被清除)。

2 个答案:

答案 0 :(得分:1)

如果日志记录适合您的应用程序,听起来如此,它应该比使用扭曲更简单。您可以在内存中记录一个线程安全队列,并从中拉出一个单独的线程(或几个)并推送到云端。

那就是说,扭曲可能更快或至少更具可扩展性,但是,尤其是如果你不了解它,学习曲线会更陡峭。

如果线程接近命中限制,您可以随时切换日志处理程序以使用扭曲,而无需更改应用程序的界面,这样我就可以通过简单的方法和基础来开始。

答案 1 :(得分:1)

这对于gevent来说是微不足道的(只需在一个单独的greenlet中进行PUT并修补插槽)。