У меня есть многопоточная программа, выполняющая CEP с использованием Esper. Пока события уже отправляются через движок, я создаю новую инструкцию и устанавливаю подписчика. Поскольку метод createEPL
автоматически запускает оператор, возможно, я пропущу обновление, инициируемое оператором, между тем, когда оператор запущен и когда мой подписчик установлен. Рассмотрим пример:
EPStatement myStatement = epService.getEPAdministrator().createEPL(myStatementString);
// another thread sends an event that triggers my statement which at this moment has no subscribers
myStatement.setSubscriber(MySubscriber.this);
// now my subscriber will get updates but it potentially missed some since the statement was created
Я мог бы создать свои собственные блокировки для решения этой проблемы, но мне было интересно, есть ли альтернативный подход для одновременного создания оператора и установки подписчика, предоставляемого API Esper? Или, альтернативно, это способ создания EPStatement без его автоматического запуска, чтобы я мог назначить своего подписчика, а затем запустить оператор вручную?