java - 如果前一个路由的执行没有完成就不要启动路由
问题描述
我正在为下面代码中的问题寻找 apache camel 中的解决方案。在完成之前的运行之前,该路线无法重新开始。
@Override
public void configure() throws Exception {
from("timer://foo?fixedRate=true&period=3s")
.routeId("teste")
.log("INIT")
.delay(5000)
.log("DELAY-END")
.end();
}
解决方案
您可以让Delayer 使用非阻塞异步延迟,这意味着Camel 将使用调度器来调度将来要执行的任务。然后该任务将继续路由。这允许调用者线程不阻塞并能够服务其他消息等。
直接来自文档。.asyncDelayed()
在之后添加.delay(5000)
以启用非阻塞行为。
推荐阅读
- machine-learning - 是一种热编码没有虚拟陷阱
- vue.js - RXJS 运算符不是函数
- c++ - 具有静态方法的模板专用类是否占用存储空间?
- sql-server - 无法在 T-SQL 中提取 Json 值
- azure - 禁用
我有一个网络应用程序,我正在尝试禁用早于 1.2 的 TLS 版本。即:我不想支持 TLS 1.0 或 1.1。
1) 我在 Azure 门户中设置了以下内容。
- ios - iOS如何防止应用程序窃取保存在谷歌驱动器中的文件?
- python - Haarcascades 在 OpenCV 中不起作用
- swift - NSTable 视图 DataSource 和 Delegate 在更新到 Swift 4.1 后停止工作
- java - JavaFX - ListView - 泛型 - CellFactory