2016-12-19 22 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