23.5. 작업 이동 및 삭제
이동 또는 삭제 작업은 라우팅이 완료된 후에도 실행되므로 Exchange 를 처리하는 동안 파일이 계속 inbox 폴더에 있습니다.
예를 들어 이를 설명하겠습니다.
from("file://inbox?move=.done").to("bean:handleOrder");
from("file://inbox?move=.done").to("bean:handleOrder");
파일이 inbox 폴더에 삭제되면 파일 소비자는 이를 확인하고 handleOrder console로 라우팅되는 새 FileExchange 를 생성합니다. 그런 다음 console은 File 오브젝트를 처리합니다. 이 시점에서 파일은 여전히 inbox 폴더에 있습니다. 빈이 완료되고 경로가 완료되면 파일 소비자는 이동 작업을 수행하고 파일을 .done 하위 폴더로 이동합니다.
이동 및 pre >-< 옵션은 디렉터리 이름으로 간주됩니다( File Language와 같은 표현식을 사용하는 경우 또는 간단한 표현식 평가 결과는 사용할 파일 이름입니다. 예를 들어, 설정한 경우 다음을 수행합니다.
move=../backup/copy-of-${file:name}
move=../backup/copy-of-${file:name}
그런 다음 사용할 파일 언어를 사용하는 File 언어를 사용하는데, 이는 상대 또는 절대일 수 있습니다. 상대적인 경우 파일이 사용된 폴더의 하위 폴더로 디렉터리가 생성됩니다.
기본적으로 Camel은 사용된 파일을 파일이 사용된 디렉토리를 기준으로 .camel 하위 폴더로 이동합니다.
처리 후 파일을 삭제하려면 경로는 다음과 같아야 합니다.
from("file://inbox?delete=true").to("bean:handleOrder");
from("file://inbox?delete=true").to("bean:handleOrder");
처리되기 전에 파일을 이동하는 사전 이동 작업을 도입했습니다. 이를 통해 처리되기 전에 이 하위 폴더로 이동할 때 어떤 파일이 검사되었는지 표시할 수 있습니다.
from("file://inbox?preMove=inprogress").to("bean:handleOrder");
from("file://inbox?preMove=inprogress").to("bean:handleOrder");
사전 이동과 일반 이동을 결합할 수 있습니다.
from("file://inbox?preMove=inprogress&move=.done").to("bean:handleOrder");
from("file://inbox?preMove=inprogress&move=.done").to("bean:handleOrder");
이 경우 파일은 처리할 때 진행 중인 폴더에 있고 처리 후 .done 폴더로 이동합니다.