Распределенный Wso2sp не развертывает приложение Siddhi с JavaScript

Я пытаюсь запустить приложение siddhi с функциями javascript, но когда я отправляю приложение менеджеру, чтобы развернуть его в распределенных воркерах, оно никогда не развертывается.

Я попытался удалить ссылку на функцию javascript в запросах, и она развертывается, но в развернутом приложении нет кода javascript.

Это приложение для сиддхи:

@App:name("TestApp01")

define function sum[JavaScript] return double {
    return data[0] + data[1];
};

define stream SourceStream (id string, value1 double, value2 double);

@sink(type='log', prefix='received information...')
define stream SinkStream (id string, value1 double);

@info(name='Tags')
@dist(parallel='1')
from SourceStream
select id, sum(value1, value2) as value1
insert into SinkStream;

Ошибки, которые я получаю в диспетчере, следующие:

WARN {org.wso2.carbon.sp.jobmanager.core.deployment.DeploymentManagerImpl} - Couldn't deploy partial Siddhi app TestApp01-1875a7b7-5c20-4f68-80b5-479296c7cd0f-1 in ResourceNode { id: wso2sp-worker-2, host: wso2sp-worker-2, port: 9443 }. Will retry in 2000 milliseconds.
WARN {org.wso2.carbon.sp.jobmanager.core.deployment.DeploymentManagerImpl} - Couldn't deploy partial Siddhi app TestApp01-1875a7b7-5c20-4f68-80b5-479296c7cd0f-1 in ResourceNode { id: wso2sp-worker-1, host: wso2sp-worker-1, port: 9443 }. Will retry in 2000 milliseconds.

И ошибка, которую я получаю в рабочих, заключается в следующем:

ERROR {org.wso2.carbon.stream.processor.core.internal.StreamProcessorService} - Exception occurred when validating Siddhi App TestApp01-1875a7b7-5c20-4f68-80b5-479296c7cd0f-1 org.wso2.siddhi.core.exception.SiddhiAppCreationException: Error on 'TestApp01-1875a7b7-5c20-4f68-80b5-479296c7cd0f-1' @ Line: 8. Position: 30, near 'sum(value1, value2)'.

И если я удалю вызов javascript, он развернется, но без удаления кода javascript из полученного приложения. Это код, развернутый в worker без функции javascript:

@App:name('TestApp01-2055a886-06ea-407d-9d42-e549a6cf47b3-1') 
@source(type='kafka', topic.list='TestApp01.SourceStream', group.id='TestApp01-2055a886-06ea-407d-9d42-e549a6cf47b3-0', threading.option='single.thread', bootstrap.servers='kafka:9092', @map(type='xml'))define stream SourceStream (id string, value1 double, value2 double);
@sink(type='log', prefix='received information...')
define stream SinkStream (id string, value1 double);
@info(name='Tags')

from SourceStream
select id, (value1 + value2) as value1
insert into SinkStream;

Я планирую развернуть приложение siddhi с использованием функций javascript, но оно не развертывается с этой частью кода.


person grisaf    schedule 12.07.2019    source источник


Ответы (1)


К сожалению, текущее распределенное развертывание не поддерживает определение функций. Вот почему вы получаете эту ошибку развертывания. В качестве работы, а не функции javascript, вы можете встроить функции сиддхи для суммирования, как вы уже сделали. Ниже приведен пример

@App:name("TestApp01")

define stream SourceStream (id string, value1 double, value2 double);

@sink(type='log', prefix='received information...')
define stream SinkStream (id string, value1 double);

@info(name='Tags')
@dist(parallel='1')
from SourceStream
select id, value1 + value2 as value1
insert into SinkStream;
person Tishan    schedule 24.07.2019