Python复杂事件处理

时间:2010-09-14 07:54:33

标签: python complex-event-processing

是否有类似于Esper(Java和.NET)的Python替代方案处理复杂事件处理(CEP)?

4 个答案:

答案 0 :(得分:4)

随意浏览表明这不是Python的常见问题域(虽然非常有趣!)。最让我想到的框架是PEAK-Rulesdynrules

可能会有更多,但不广为人知(我会再搜索一下)

对于你自己的挖掘:找到Python项目的地方首先是PyPI

(@ cues7a:Twisted,虽然确实是一个事件框架,但是太低了,无法与Esper相提并论。)

编辑:您似乎可以控制Sybase的CEP products with Python

答案 1 :(得分:3)

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

答案 2 :(得分: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("manager@example.com", "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

action()可能是一个警报,和/或它可能触发另一个动作或进行一些API调用。它只是Python,所以你不受限制。

答案 3 :(得分:0)

Twisted Matrix怎么办?