通过文档查看了使用Camel for ETL的方法,就像在网站的示例中一样,除了基于md5匹配的这些附加条件。
与camel示例一样,myetl / myinputdir将被监视任何新文件,如果找到,将处理$ {filename}文件。
除非它首先等待$ {filename} .md5显示,否则将包含正确的md5。如果$ {filename} .md5从未显示过,那么它将直接忽略该文件。
如果$ {filename} .md5确实显示但md5不匹配,则会被处理但出现错误。
找到使用加密进行匹配的建议,但在找到匹配的.md5文件之前,还没有想出如何忽略该文件。实际上,这两个文件需要作为匹配对处理,以使一切正常工作,并且它们可能不会以完全相同的毫秒到达输入目录。或者,md5文件可能会在数据文件之前显示几毫秒。
答案 0 :(得分:0)
您可以使用aggregator根据文件名合并这两个文件。如果文件名称适当,则可以使用文件名(不带扩展名)作为相关ID。一旦completionSize
等于2,继续路由。如果将groupExchanges设置为true,则在下一个路由步骤中,您可以访问用于计算哈希值的文件和md5文件的内容,以比较哈希值。或者,如果md5或内容文件从未到达completionTimeout
,您可以触发适合您的方案的任何操作。