gpt4 book ai didi

flume - Flume-ng null 事件的自定义接收器

转载 作者:行者123 更新时间:2023-12-04 17:37:00 26 4
gpt4 key购买 nike

我正在尝试为flume-ng编写一个自定义接收器。我查看了现有的接收器和文档并对其进行了编码。但是,应该接收事件的“process()”方法总是以 null 结束。
我正在做 Event event = channel.take();但该事件为空。我在日志中看到这个方法被重复调用,因为事件仍在 channel 中。

有人可以指出我正确的方向吗?

最佳答案

这是流程功能的骨架...如果您无法获取事件,您回滚 ,将状态更改为 回退 .如果不是你 提交 并将状态设置为 准备好 .不管怎样,你总是关闭交易。

    Status status = null;
Channel channel = getChannel();
Transaction transaction = channel.getTransaction();
transaction.begin();
try {
Event event = channel.take();

if (event != null && validEvent(event.getBody()) >= 0) {
# make some printing
}
transaction.commit();
status = Status.READY;
} catch (Throwable ex) {
transaction.rollback();
status = Status.BACKOFF;
logger.error("Failed to deliver event. Exception follows.", ex);
throw new EventDeliveryException("Failed to deliver event: " + ex);
} finally {
transaction.close();
}
return status;

我相信这会奏效:)。

关于flume - Flume-ng null 事件的自定义接收器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15318645/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com