2010-09-14 88 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,所以你不受限制。