일부 데이터 스트림을 처리하기 위해 폭풍우를 사용하고 있습니다. 즉석에서 Esper bolt 문을 변경할 수 있습니까?
처음에 나는 내가 에스퍼 볼트에 사용되는 문장을 찾을 수 xml 파일을 읽습니다. 곧 내 토폴로지를 정의하고 클러스터에서 실행합니다. 이제 볼트에서 명령문을 변경하려면 xml을 수정하고 클러스터를 중지 한 다음 처음부터 다시 시작해야합니다.내 XML을 검사 할 때 클러스터가 진행되는 동안 새로운 문으로 에스퍼 볼트를 업데이트 할 수 있습니다 정의 새로운 문을 발견 스레드를 보는 풍경 수 있습니까?
나는이 볼트 및 편집에 액세스 할 수있는 방법을 스레드에서String statement = "select count(*) as userPerMinutes from event.win:time_batch(60 sec)";
EsperBolt esperBolt = new EsperBolt.Builder()
.inputs().aliasComponent("user")
.withField("field1").ofType(String.class)
.withField("field2").ofType(Integer.class)
.withField("field3").ofType(Long.class)
.toEventType("event")
.outputs().onDefaultStream().emit("userPerMinutes")
.statements().add(statement)
.build();
/추가/그 문을 제거 다음과 같이
가 나는 에스퍼 볼트를 정의? 토폴로지를 통해? 그리고 어떻게?
에스퍼 볼트의 문을 어떻게 업데이트 할 수 있습니까? externa 스레드에서 DB에서 새 볼트에 대한 설명을 얻으면 어떻게됩니까? 볼트를 청소하고 다시 조립합니까? 또는 무엇을? 위와 같은 코드가 – Pietro
추가되었습니다. – DeepNightTwo
완벽한! 그것은 작동합니다. 조언 감사합니다. – Pietro