2016-12-19 50 views
0

我的程序使用HTTP請求從API中提取文章。要查看哪些文章已從API中提取,請使用時間戳。現在我的問題是,我的程序應該只在3天內提取文章。而不是更多。即它不應該超過當前的時間戳。這意味着,就像現在時間是星期三14:00一樣,那麼週一,週二到現在(週三14:00)的文章應該被取消。 這裏的第一個鏈條接收最後的時間戳文件, 我的代碼是:Spring表達式語言添加時間戳

<int:channel id="timestampFile" /> 

    <int:chain input-channel="timestampFile" output-channel="timestampWithHeaders"> 
      <file:file-to-string-transformer delete-files="false" charset="UTF-8" /> 
     <int:header-enricher > 
      <int:header name="beginTime" expression="payload" /> 
      <int:header name="endTime" expression="new Long(payload) + new Long(${abc.poll.frequency})" /> 
      <int:header name="offset" value="0"/> 
     </int:header-enricher> 
    </int:chain> 

我如何檢查是否結束時間爲3天從開始時間,不得超過當前時間戳?

回答

0

您可以簡單地比較長值:

endTime < beginTime + 60000*60*24*3 
+0

通過這樣做只會確保結束時間爲3天範圍內從開始的時間。不過,我也應該在發出請求之前檢查文件最後時間戳中的時間戳,並在需要時進行調整。如果超過3天,則必須重置爲現在的-3天。即,如果結束時間戳未來將不得不減小到當前時間戳。我怎樣才能做到這一點? – Light

+0

時間戳將來會如何?您可能需要一個自定義的SpEL函數來處理文件時間戳。 –

+0

謝謝。我寫了一個函數來限制結果不會超過當前時間。 – Light