public class MySource extends AbstractSource implements Configurable, PollableSource {
//前缀参数
private String prefix;
//后缀参数
private String suffix;
//延时参数
private Long delay;
//生成数据参数
private int n;
public Status process() throws EventDeliveryException {
ChannelProcessor channelProcessor = getChannelProcessor();
Status status;
try {
for (int i = 0; i < n; i++) {
Event event = new SimpleEvent();
event.setBody((prefix + i + suffix).getBytes());
event.setHeaders(new HashMap<String, String>());
channelProcessor.processEvent(event);
Thread.sleep(delay);
}
status = Status.READY;
} catch (InterruptedException e) {
status = Status.BACKOFF;
}
return status;
}
public long getBackOffSleepIncrement() {
return 0;
}
public long getMaxBackOffSleepInterval() {
return 0;
}
public void configure(Context context) {
prefix = context.getString("prefix", "PD");
suffix = context.getString("suffix", "SD");
delay = context.getLong("delay", 2000L);
n = context.getInteger("count", 5);
}
}