В настоящее время мы тестируем сиддхи wso2 cep.wso2: cep: siddhi: как сделать время окон стойким
Мы должны иметь возможность перезагрузить серверный процесс wso2, не теряя данные, накопленные в окне (например, временное окно).
Есть ли способ сделать временные окна стойкими, чтобы сервер можно было перезапустить, не потеряв его состояние?
Нужно ли настраивать сервер для использования персистентности?
Или нам просто нужно адаптировать запрос и использовать таблицу событий?
Вот пример нашего запроса:
from every data= DataInStream[state == 1] ->
every event = EventInStream[event.no == data.no] within 24h
insert into duplicatesOutStream data.id as id
Я смог активировать кассандру и, таким образом, сохранить состояние ковша. Проблема, с которой мы сталкиваемся сейчас, заключается в том, что когда сервер закрывается с помощью cntrl-c или когда он завернут с yajsw, крючки отключения выполняются параллельно, а cassandra закрывается до того, как состояние сохраняется. Есть ли способ вызвать shutdownGracefully из некоторого статического метода или через порт выключения (аналогично tomcat)? – ron
Существует два способа изящного выключения сервера wso2carbon: 1. с терминала - открыть другой терминал, переключиться на/bin и запустить команду ./wso2server.sh -stop 2. вы также можете отключиться из Интернета ui (консоль управления) –
спасибо. для чистого закрытия wso2-сервера я добавил следующее в yajsw wrapper.conf: 'wrapper.app.shutdown.script = $ {wrapper_home}/scripts/wso2_shutdown.gv' скрипт groovy вызывается, когда wso2 получает команду остановки из yajsw. скрипт вызывает shutdownGracefully на сервере mbean: 'import javax.management. * servers = MBeanServerFactory.findMBeanServer (null) beanName =" org.wso2.carbon: type = ServerAdmin " servers.each() {try {new GroovyMBean (it, beanName) .shutdownGracefully()} catch (Exception ex) {println ex}} ' – ron