我想用骆驼实现一条路线,分别满足两个要求:
我已经有一条从direct:myOtherRoute消耗的路由,我现在要实现的是增加启动计时器。
from("direct:myOtherRoute")
.marshal()
.zipFile()
.setHeader(Exchange.FILE_NAME, constant(endpointsURLs.get(EXTRACT_ZIP_FILENAME)))
.log("Generate ZIP")
.to("file:" + endpointsURLs.get(EXTRACT_ZIP_DIR) + "?doneFileName=" + endpointsURLs.get(EXTRACT_ZIP_TRIGGER));
答案 0 :(得分:0)
处理此问题的一种肮脏方法是可以在骆驼生成器中运行TimerTask并添加RouteDefinitions或suspantRoute路由。如果您的问题没有解决,请告诉我。
答案 1 :(得分:0)
请看一下:
package com.test.camel.quartz2;
import org.apache.camel.spring.SpringRouteBuilder;
import org.springframework.stereotype.Component;
@Component
public class QuartzTest extends SpringRouteBuilder {
@Override
public void configure() throws Exception {
from("quartz2://myGroup/myTimerName?cron=0+0+3+?+*+*+*").to("direct:myOtherRoute");
from("direct:myOtherRoute").log("Running");
}
}
我添加了可以与spring-boot一起使用的完整测试类。记住要导入Maven依赖项!
奖金:要创建您的cron模式,您可以使用以下网站 cron-expression-generator-quartz 并记得按照骆驼石英2页中的“ +”符号替换空格
注意:如果需要石英1.x兼容性,请改用以下命令:Apache Camel : Quartz