Apache Camel 串行轮询

Apache Camel Serial Polling

假设我有一个文件使用者,它每 10 秒轮询一次目录,并对它在那里找到的文件进行某种处理。

处理每个文件可能需要 40 秒。这意味着在此间隔期间,Cosumer 将再次轮询目录,并启动另一个类似的进程?

有什么办法可以避免这种情况,并且如果之前的轮询尚未完成则不允许消费者进行轮询?

文件使用者是单线程的,因此它不会在已经处理文件时进行轮询。

当消费者完成后,它会延迟 10 秒,然后再次轮询。这是由 useFixedDelay 选项控制的,您可以在 JDK ScheduledExecutorService 中阅读更多相关信息,Camel 将其用作调度程序。