file://D:/Users/schintha/temp/input?autoCreate=false&include=.*.csv|.*.CSV|.*.eof|.*.EOF
&maxMessagesPerPoll=1000&moveFailed=.error&scheduler=spring&scheduler.cron=0+*+*+*+*+?
&sendEmptyMessageWhenIdle=true&sortBy=file:modified;ignoreCase:file:name
我正在使用上面的路由与轮询(cron调度程序)是每0秒(一分钟一次)。
如果文件(即一个或多个文件)传输花费的时间超过一分钟,那么sendEmptyMessageWhenIdle是否有效是我的问题
。
因为,我在民意调查期间没有档案时停止路线。
如果文件传输超过轮询时间(例如,在这种情况下超过一分钟),请让我知道民意调查(cron调度程序)的功能。
我的路线结构:
<route>
<from>
<when>
<simple>${headers.CamelBatchSize} >= 1 and ${body} != null
and ${headers.CamelFileName} != null</simple>
<to>
<otherwise> <toD uri="controlbus:route?routeId=${routeId}&action=stop"/>
</route>
答案 0 :(得分:1)
我不完全确定问题是什么?
如果当前轮询未找到要处理的任何文件,sendEmptyMessageWhenIdle
选项将仅发送空邮件正文。如果轮询找到一个文件并且处理所有发生的事件花费的时间超过一分钟,那么新的轮询将与正在进行的轮询并行执行。
即。如果当前的民意调查需要一分多钟才能完成,你将不会得到一条空信息。
此外,如果没有要处理的文件,您唯一要做的就是停止路线,您也可以完全删除sendEmptyMessageWhenIdle
。如果该选项设置为false(默认情况下),则路由将自动停止(直到下一次轮询,即)。