Я пишу специальный процессор, в котором преобразую содержимое FlowFile. Для простоты в этом вопросе он просто напишет одно и то же содержимое. content.
Теперь есть метод
session.create(flowFile);
, который создает новый FlowFile.
Это заставило меня задуматься, не все ли я делаю неправильно, записывая в исходный FlowFile. Сделать это так просто, так что это нормально. Но, может быть, лучше создать новый FlowFile?
Каковы последствия обоих способов и когда правильно выбрать тот или другой? Или наблюдаемое поведение будет таким же?
Это будет некий код, который создает новый FlowFile, записывая содержимое исходного:
public void onTrigger(ProcessContext context, ProcessSession session) throws ProcessException {
FlowFile flowFile = session.get();
if (flowFile == null) return;
FlowFile newFile = session.create(flowFile);
session.write(
newFile,
output) -> session.read(flowFile).transferTo(output) // Do transfomration here
);
session.transfer(REL_SUCCESS, newFile);
}