我需要创建一个路由,它会定期调用一些进程,在迭代之间有一个小的延迟。
当我查看循环文档时:
循环允许多次处理消息,每次迭代可能以不同的方式。主要在测试期间有用。
所以这对我没有用,因为我需要做一个无限循环(没有CamelLoopSize
明确指定)。
我的第二个想法是使用一种“递归”:
from("direct:updateLoop").routeId("updateLoop")
.process(someProcess)
...
.filter(someFilter) // Can be used to stop the workflow
.delay(18000000) // Wait 5 hours and start again
.to("direct:updateLoop")
这在几天内效果很好,但是在大约 600 次迭代后,这失败了StackOverflowException
有没有更好的方法在无限循环中运行我的进程?