Я хочу поставить метку времени прибытия для потока, как только он прибудет на сервер IoT WSO2, и метку времени проглатывания, когда он используется механизмом CEP. Эти времена будут использоваться для вычисления Queuing latency
и CEP latency
следующим образом.
Queuing latency = ingestion time - arrival time
CEP latency = detection time - ingestion time
Ниже мой план выполнения
@Plan:name('Server_CEP')
@Plan:statistics('true')
@Plan:trace('true')
@plan:async(bufferSize='1024')
@Import('stream2_scep:1.0.0')
define stream eeg_stream (meta_sensorID_s2 int, meta_tupleID_s2 int, value_s2 int, generationTime_s2 long);
@Import('stream1_scep:1.0.0')
define stream ecg_stream (meta_sensorID_s1 int, meta_tupleID_s1 int, value_s1 int, generationTime_s1 long);
@Export('cep_stream_scep:1.0.0')
define stream CEPStream (cep_event int, cepLatency long);
from every ecg = ecg_stream[value_s1 >= 50 ] -> eeg = eeg_stream[value_s2 >= 50] within 10 sec
select ecg.value_s1 as cep_event , convert(time:currentTimestamp(), 'long') - ecg.generationTime_s1 as cepLatency
insert into CEPStream;
Я могу найти время обнаружения как текущее время, когда обнаружено событие CEP. Я также использую @async
с размером буфера 1024. Теперь вопрос заключается в том, как мне пометить время прибытия потока, как только он прибудет. Кроме того, вторая проблема заключается в том, как поставить метку времени проглатывания двигателя.
Может кто-нибудь сказать мне, как мне этого добиться?
PS: я смог добиться этого устройства Android, так как использовал неблокирующую очередь, и время прибытия было временем его поступления в очередь FIFO, а время приема - временем его удаления из очереди