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

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

5 ответов

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

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

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

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

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

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

Да, 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("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

Действие () может быть предупреждением и / или может вызывать другое действие или выполнять какой-либо вызов API. Это просто Python, поэтому вы не ограничены.

Проект Kaskada не совсем является инструментом CEP, но он имеет некоторое сходство с системами CEP и предоставляет клиент Python, предназначенный для сред ноутбуков, таких как Jupyter.

Например, вы можете запросить такие данные, как «сколько просмотров страниц произошло с момента последней покупки, которую пользователь совершил»:

      PageView | count(window=since(Purchase))

Язык запросов Kaskada основан на идее временной шкалы, и многие операции, предоставляемые языками CEP (последующие, повторенные и т. д.), имеют аналоги в языке запросов Kaskada.

Отказ от ответственности : я участвую в проекте Kaskada.

Как насчет витой матрицы?

Другие вопросы по тегам