2010-09-14 87 views

回答

4

休闲浏览表明这不是Python的常见问题(尽管非常有趣!)。最接近我的是框架PEAK-Rulesdynrules

可能有更多,但并不广为人知(我将寻找多一点)

为了你自己挖:找到Python项目的地方首先是PyPI

(@ cues7a:扭曲的,而确实是一个事件框架,太低级到可媲美埃斯佩尔。)

编辑:看来你可以控制Sybase的CEP products with Python

3

的ruleCore CEP服务器使用动态加载的Python模块来扩展它。内部架构围绕使用pub/sub方法的中央事件总线进行构建。所以每个模块都可以订阅内部事件并根据模块内部的逻辑发布事件。

1

是,http://nebrios.com

这是blog article explaining how it handles CEP。它还可以通过规则执行工作流程,与任何api或人员交互。你所有的脚本当然都是纯Python。这里有一个例子:

class high_temp_shutdown(NebriOS): 
    listens_to == ['shared.temperature'] 

    def check(self): 
     return shared.temperature > 220 

    def action(self): 
     # only triggers if the check() is true 
     send_email("[email protected]", "Temperature Peaked!!!") 
     warehouse.shutdown_generator() 
      # assuming this is an available call 

虽然这不是很复杂。对于模式检测多个规则可以很容易地把你的检查:

def check(self): 
     if shared.temperature > 220 and \ 
      shared.outside_weather > 79 and \ 
      dropbox.weekly_report_exists == True 
      return True 

行动()可能是一个警告,和/或它可能引发新一轮的行动或做一些API调用。它只是Python,所以你不受限制。