Подтвердить что ты не робот

Обработка сложных событий Python

Существуют ли альтернативы Python, похожие на Esper (Java и .NET), которые занимаются сложной обработкой событий (CEP)?

4b9b3361

Ответ 1

Случайный просмотр показывает, что это не очень распространенный проблемный домен для Python (хотя и очень интересный!). Наиболее близкие мне рамки - PEAK-Rules или dynrules.

Может быть больше, но не широко известно (я буду искать немного больше)

Для вашего собственного копания: место для поиска проектов Python - это в первую очередь PyPI.

(@cues7a: Twisted, хотя и является основой событий, слишком низкоуровневая, чтобы быть сопоставимой с Esper.)

Изменить: Кажется, вы можете управлять Sybase Продукты CEP с Python

Ответ 2

Сервер PolicyCore CEP использует динамически загружаемые модули Python, которые могут быть использованы для его расширения. Внутренняя архитектура построена вокруг центральной шины событий, которая использует подход pub/sub. Поэтому каждый модуль может подписаться на внутренние события и публиковать события на основе логики внутри модуля.

Ответ 3

Yup, http://nebrios.com.

Здесь статья в блоге, объясняющая, как она обрабатывает 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, поэтому вы не ограничены.