Я создал собственный обработчик журналов.который я использую, чтобы поставить ожидание, используя «Длительность штрафа».
Ниже приведен мой код для достижения этой цели.Процессор работает как положено. Но когда он запускается, я вижу, как генерируется множество журналов.я могу видеть, что журналы продолжают печатать " файл потока пуст (плохо) !!! ".Простым решением было бы закомментировать журнал, но процессор все равно вызывался так много раз.Я всегда, хотя, если я увеличу , получим значение, процессор будет вызван в этот большой интервал.
поэтому мой вопрос: как уменьшить нагрузку на процессор и сократить количество вызовов метода onTrigger?
@Override
public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException {
final ComponentLog logger = getLogger();
FlowFile flowFile = session.get();
if (flowFile != null) {
logger.info("flow file is not null.");
String state = flowFile.getAttribute("_wait_state");
if (state == null || state.isEmpty()) {
logger.info("\"_wait_state\" attribute is missing, going into WAIT.");
flowFile = session.putAttribute( flowFile, "_wait_state", "1");
flowFile = session.penalize(flowFile);
context.yield();//to save CPU cycles....
session.transfer( flowFile, POINT_TO_SELF_RELATIONSHIP );
} else {
logger.info("\"_wait_state\" attribute is available, breaking WAIT.");
flowFile = session.removeAttribute( flowFile, "_wait_state" );
session.transfer( flowFile, SUCCESS_RELATIONSHIP);
}
} else {
logger.info("flow file is null (bad)!!!.");
}
}
![enter image description here](https://i.stack.imgur.com/d9RLo.png)