为了账号安全,请及时绑定邮箱和手机立即绑定

骆驼:从同一目录读取和写入

骆驼:从同一目录读取和写入

慕虎7371278 2023-03-02 16:30:59
我有这条骆驼路线:final String URI_FILE = "file:{{PATH}}";final String POOLER = "&scheduler=quartz2&scheduler.cron=0+0/10+*+*+*+?";from(URI_FILE + POOLER).pollEnrich().simple("{{URL_CHECKER}}",String.class).aggregationStrategy(new myEstratey()).choice()    .when(exchangeProperty("CONTINUE").isEqualTo(true))        .log("Condition was met")        .to(URI_DIRECT) //To another route     .endChoice()     .otherwise()        .log("I'll try again later")        .to(URI_FILE) .endChoice();我想每10 分钟从PATH读取一个文件,然后使用 pollEnrich 检查条件。如果满足条件,路由继续。在另一种情况下,我想将文件返回到同一目录 ( PATH )。这条路线工作正常,甚至显示日志消息“我稍后再试”,但在那之后,文件就消失了,没有返回到PATH怎么了?在骆驼中不允许这样做吗?谢谢!!
查看完整描述

1 回答

?
MM们

TA贡献1886条经验 获得超2个赞

该文件很可能在目标目录中被覆盖,但是在完成后,它被移动到.camel目录中。

这是预期的行为,请参阅文件组件文档

路由完成后(发布命令)执行任何移动或删除操作


最好回滚你的路由,它默认将文件保存在源目录中。

final String URI_FILE = "file:{{PATH}}";

final String POOLER = "&scheduler=quartz2&scheduler.cron=0+0/10+*+*+*+?";


from(URI_FILE + POOLER)

.pollEnrich().simple("{{URL_CHECKER}}",String.class).aggregationStrategy(new myEstratey())

.choice()

    .when(exchangeProperty("CONTINUE").isEqualTo(true))

        .log("Condition was met")

        .to(URI_DIRECT) //To another route

     .endChoice()

     .otherwise()

        .log("I'll try again later")

        .rollback() // rollback processing and keep file in original directory

.endChoice();


查看完整回答
反对 回复 2023-03-02
  • 1 回答
  • 0 关注
  • 156 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号