我的需求。是輪詢一個指定的時間間隔,例如10分鐘的目錄。如果一個特定擴展名的文件在目錄中找到* .xml,那麼它只是消耗(即選擇和刪除)該文件,並在指定的時間(例如10分鐘)之後打印其他名稱,然後發送郵件該文件沒有被挑選(即消耗)或文件沒有來。使用Spring集成輪詢文件時的問題
有2個選項,我可以通過Spring集成或Core Java的WatchService來完成。以下是我一直寫到現在的Spring Integration代碼:
<int:channel id="fileChannel" />
<int:channel id="processedFileChannel" />
<context:property-placeholder location="localProps.properties" />
<int:poller default="true" fixed-rate="10000" id="poller"></int:poller>
<int-file:inbound-channel-adapter
directory="file:${inbound.folder}" channel="fileChannel"
filename-pattern="*.xml" />
<int:service-activator input-channel="fileChannel"
ref="fileHandlerService" method="processFile" output-channel="processedFileChannel"/>
<bean id="fileHandlerService" class="com.practice.cmrs.springintegration.Poll" />
以上代碼已成功地針對特定文件模式輪詢文件夾。現在我有兩件事要做:
1)停止輪詢後特定的時間間隔(可配置)說10分鐘。
2)檢查文件夾中是否有特定擴展名的文件...如果文件存在(它會消耗然後刪除),否則它會向一羣人發送電子郵件(電子郵件部分已完成。 )
請幫我在上述2點。
請問我能舉一個簡單的例子嗎? ....我也沒有從網上獲得任何例子......所以它變得困難......一個例子會有幫助。 – sid
可以以某種方式使用cron表達式來完成這項工作嗎? – sid
不是隻有一個,但可以在'CompoundTriggerAdvice' [javadocs here]中使用兩個cron觸發器(http://docs.spring.io/spring-integration/docs/5.0.0.BUILD-SNAPSHOT/reference/ HTML /消息通道-section.html#_compoundtriggeradvice)。 –