我只想允許從源目錄中刪除非重復文件。我有一條這樣的冪等消費者的路線:File repo = new File("repo.txt");IdempotentRepository fr = FileIdempotentRepository.fileIdempotentRepository(repo);from("sftp:someServer:somePort/someDir?delete=true") .idempotentConsumer(header("CamelFileName"),fr) .to("file:output");在這種情況下,delete=true 將導致從源目錄中刪除重復消息的路由。為了防止這種情況,我嘗試了以下代碼:File repo = new File("repo.txt");IdempotentRepository fr = FileIdempotentRepository.fileIdempotentRepository(repo);from("sftp:someServer:somePort/someDir?delete=true") .idempotentConsumer(header("CamelFileName"),fr) .skipDuplicate(false) .filter(exchangeProperty(Exchange.DUPLICATE_MESSAGE).isEqualTo(true)) .process(new Processor() { @Override public void process(Exchange exchange) throws Exception { exchange.setException(new InterruptedException("Cancel Exchange")); exchange.setProperty(Exchange.ROUTE_STOP, Boolean.TRUE); } }) .end().to("file:output");由于從路由內的 sftp 刪除將需要另一個 jsch 實例,因此我希望能夠使用 sftp 使用者的刪除屬性
Apache 駱駝:停止交換進行 delete=true
慕婉清6462132
2021-10-28 14:21:35