-
Notifications
You must be signed in to change notification settings - Fork 7.6k
/
CanalEventSink.java
38 lines (32 loc) · 1.11 KB
/
CanalEventSink.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package com.alibaba.otter.canal.sink;
import java.net.InetSocketAddress;
import com.alibaba.otter.canal.common.CanalLifeCycle;
import com.alibaba.otter.canal.sink.entry.group.GroupEventSink;
import com.alibaba.otter.canal.sink.exception.CanalSinkException;
/**
* event事件消费者
*
* <pre>
* 1. 剥离filter/sink为独立的两个动作,方便在快速判断数据是否有效
* </pre>
*
* @author jianghang 2012-6-21 下午05:03:40
* @version 1.0.0
*/
public interface CanalEventSink<T> extends CanalLifeCycle {
/**
* 提交数据
*
* @param event
* @param remoteAddress
* @param destination
* @throws CanalSinkException
* @throws InterruptedException
*/
boolean sink(T event, InetSocketAddress remoteAddress, String destination) throws CanalSinkException,
InterruptedException;
/**
* 中断消费,比如解析模块发生了切换,想临时中断当前的merge请求,清理对应的上下文状态,可见{@linkplain GroupEventSink}
*/
void interrupt();
}