SODBASE CEP学习进阶篇(三):自己写输入输出适配器

自己写输入输出适配器,只需要实现OptimizedInputAdaptorI和OptimizedInputAdaptorI就可以了。

1.输入适配器

package com.example;
import java.util.Date;
import zstreamplus.eventbuffer.PrimitiveEvent;
import zstreamplus.eventbuffer.ValueType;
import com.sodbase.inputadaptor.OptimizedInputAdaptorI;
public class MyInputAdaptor extends OptimizedInputAdaptorI
{
	private String[] myParams;
	@Override
	public void run()
	{
		running=true;
		while(running)
		{
		// get the data
			
		// generate the event
		PrimitiveEvent primitiveEvent = new PrimitiveEvent();
		ValueType valueType = new ValueType("value1", "string");
		primitiveEvent.getAttributeMap().put("attrbute1", valueType);
		valueType = new ValueType("value2", "double");
		primitiveEvent.getAttributeMap().put("attrbute2", valueType);
		
		long timestamp = new Date().getTime();
		primitiveEvent.setStart_ts(timestamp);
		primitiveEvent.setEnd_ts(timestamp);
		
		//put to the stream
		putEventToStream(primitiveEvent);	
		}
	}

	@Override
	public void setUp()
	{
		/**
		 * configured in CEP model file (XML), or in .soddata* file,
		 * or directly manupulate GraphModelData object
		 * 
		 * The first parameter should be the stream name that this input adaptor binds. 
		 */
		myParams = getParams();
		
	}

	private boolean running = true;
	@Override
	public boolean isRunning()
	{		
		return running;
		//return running state for monitoring
	}
	

	@Override
	public void stopInputStream()
	{
		running=false;
		// stop input, release 
		
	}
}



2.输出适配器


package com.example;

import java.util.List;

import zstreamplus.eventbuffer.Event;
import zstreamplus.eventbuffer.PrimitiveEvent;

import com.sodbase.outputadaptor.OptimizedOutputAdaptorI;


public class MyOutputAdaptor extends OptimizedOutputAdaptorI
{
	String[] myParameters;

	@Override
	public void output(List<Event> eventlist)
	{
		while (eventlist.size() > 0)
		{
			Event e = eventlist.remove(0);
						
			if (e instanceof PrimitiveEvent)
			{
				//do something here
			} else
			{
				
			}
		}
	}


	@Override
	public void setUp()
	{
		/**
		 * configured in CEP model file (XML), or in .soddata* file,
		 * or directly manupulate GraphModelData object
		 */
		myParameters=getParams();
	}

	@Override
	public void stopOutput()
	{
		//release the resources
	}

}

写好适配器后,Export为jar文件,放到Studio的lib下面,在configuration/adaptor.properties中添加配置,就可以在Studio中测试使用此适配器了。

示例代码下载SODBASE-CEP-SDK-Adaptor.zip                                                     


SODBASE CEP用于轻松、高效实施数据监测、监控类、实时交易类项目微笑。嵌入式方式编程参见运行第一个EPL例子。与Storm集成参见EPL与Storm集成。缓存扩展参见与分布式缓存集成


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值