Mule 文件入站轮询配置

标签 mule

我想以特定时间间隔从特定目录一次轮询 10 个文件。如果该目录中存在 250 个文件,Mule 文件入站应该从 250 个文件中取出 10 个文件,然后再处理 10 个文件等。我有轮询频率值“10000”

我试图像这样应用 maxThreadsActive 但它不起作用

<file:connector>
<receiver-thread-profile maxThreadsActive=10/>
</file:connector>

最佳答案

Mule 允许您覆盖传输实现的某些部分。在这种情况下,您应该覆盖 org.mule.transport.file.FileMessageReceiver ,特别是 listFiles()方法。

public class MyFileMessageReceiver extends FileMessageReceiver
{
    private static final MAX_FILES = 10;

    @Override
    List<File> listFiles() throws MuleException
    {
        try
        {
            List<File> files = new ArrayList<File>();
            this.basicListFiles(readDirectory, files);

            if(files.isEmpty())
                return NO_FILES;

            if(files.size() > MAX_FILES)
                return files.subList(0, MAX_FILES);
            else
                return files;
        }
        catch (Exception e)
        {
            throw new DefaultMuleException(FileMessages.errorWhileListingFiles(), e);
        }
    }
}

然后,创建一个将使用您的消息接收器的连接器
<file:connector name="inboundFileConnector"> 
    <service-overrides messageReceiver="org.mule.transport.file.MyFileMessageReceiver"/> 
</file:connector>

最后,您可以将此连接器与配置中的任何文件入站端点一起使用。您只需要指定轮询频率即可。

HTH

关于Mule 文件入站轮询配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15547177/

相关文章:

java - 使用 Mule 发送格式化邮件

java - 为什么 Mule ArrayList.contains() 为空/空字符串提供不正确的值

mule - MUnit 配置错误

java - Spring @Value注解不起作用,返回null

Mule http 请求日志记录

java - 为什么我在 Mule 中使用 JMS 队列后没有得到更改的有效负载?

java - Mule MEL 用法和 ExceptionUtils.containsType(exception, type)

java - mule/java - 从 java 类读取 jar 依赖项内部的属性文件

java - JDK 版本不在允许的范围内