在骡子流的中间,我正在使用mule-requester模块来拉取一些文件并将其放到不同的位置
&a
我在上面的文件夹中有3个文件。例如A.zip,B.zip和C.zip。 只有A.zip正在下降到目标文件夹。
我还尝试在mulerequester <mulerequester:request
resource="file://D:/CITI/PHACE2/IRM/processing/outbound/zip-in?connector=empty-conn"
doc:name="Mule Requester"/>
<file:outbound-endpoint path="${zip.file.out.path}"
outputPattern="#[message.inboundProperties.originalFilename]"
responseTimeout="10000" doc:name="File" connector-ref="File"/>
中添加文件入站连接器名称而不是文件路径。这也行不通。
答案 0 :(得分:0)
具有File类型资源的Mule Requester无法与集合选项一起正常工作。他们声称有一个脚注可以解决这个问题,但是并不清楚或明确表示不这样做。
出现问题的原因是资源提取的机制和时间。在这些资源的基础库中,有两种机制,根据请求资源的方式使用。在入站端点中,使用轮询机制,该机制将与轮询匹配的所有文件作为列表返回,这些列表作为单独的查找进行线程化。在请求者使用的方法中,它是一个只返回一个文件的查询。
收集选项将获得一个列表,这适用于类似JMS队列的东西,但不适用于文件。使用JMS队列时,资源会在您请求时从队列中删除,因此如果您要求5或全部,则获得5或全部资源。但是对于文件,在完成处理之前,文件不会从目录中删除,所以你要求5,你得到5个流到同一个文件,因为每个都返回找到的第一个,并且它还没有被删除,所以下一个请求再次找到它。如果你要求全部(-1),它只会进入一个无限循环,一遍又一遍地向你发送相同的流。
这可能是固定的,但会重写整个请求者。解决方法是请求,处理,重复直到找不到更多文件,或者可能是自定义代码以获取可用文件列表,然后按照您希望的顺序按名称请求每个文件可能是几个选项。