猿问

如何使用 Spring Scheduler 而不是 Camel Timer 启动 Camel 路线

如何使用 spring 调度程序而不是计时器组件启动骆驼路线?


我尝试过使用骆驼计时器组件来触发路线,但是除了计时器之外,还有什么方法可以使用 spring 调度程序来触发路线。


1)Spring主类:-


@SpringBootApplication

public class SampleSchedulerApplication {

    public static void main(String[] args) {

        SpringApplication.run(SampleSchedulerApplication.class, args);

    }

}

2) 路由器类别:-


以下是我尝试使用计时器组件的示例。


//Directing to someService

from("timer://scheduler?period=10s")//What component should i use by default. 

.to("direct:someservice");


//Fetching datas from the rest api.

from("direct:someservice")                

.setHeader(Exchange.HTTP_METHOD).constant(HttpMethod.GET)              

.to("undertow:http://localhost:8090/api/employee/getemployees").

.log("Response : ${body}");


without timer, i can't able to trigger the route.


慕村225694
浏览 117回答 2
2回答

茅侃侃

使用调度程序组件并将其配置为使用 spring https://camel.apache.org/components/latest/scheduler-component.html

德玛西亚99

我使用 Spring Scheduler 而不是计时器通过使用 ProducerTemplate 调用骆驼路线,参考:https://camel.apache.org/manual/latest/ Producertemplate.html 。1)春季调度程序:-@Configuration@EnableSchedulingpublic class SchedulerConfiguration {    @Autowired    private IntegrationService integrationService;     @Scheduled(fixedDelay = 90000, initialDelay = 5000)    public void integrationConfig() throws IOException {        integrationService.getServiceAuthentication();    }2)集成服务;@Componentpublic class IntegrationService {    @Autowired    private ProducerTemplate producerTemplate;    public void getServiceAuthentication() { producerTemplate.sendBody("direct:someservice","username=123&password=123");    }}3)路由器生成器类; from("direct:someservice")                .setHeader(Exchange.HTTP_METHOD).constant(HttpMethod.GET)              .to("undertow:http://localhost:8090/api/employee/getemployees")..log("Response : ${body}");
随时随地看视频慕课网APP

相关分类

Java
我要回答