大数据

Camel笔记:Camel定时传送数据

2021-05-16  本文已影响0人  阿乐_822e

本文接上往篇:Camel笔记(从Mysql到本地文件与Kafka队列) - 简书 (jianshu.com)
在上篇,已经实现了通过页面请求将Mysql数据发送到本地目录和kafka队列,但对于实时数据,有时候有同步要求,这就要求我们以一定的频率源源不断地将源数据传送到目的地,也就是要用到定时任务。
定时任务我们采用camel-quartz2组件。我们在上篇的基础上,再添加一个定时任务。
1)准备工作
首先要修改poem文件,添加camel-quartz2依赖

       <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-quartz2-starter</artifactId>
            <version>2.22.1</version>
            <scope>compile</scope>
        </dependency>

这里要注意一下,上篇我们使用的camel系列组件版本是2.17.0,由于quartz2至少需要2.2以上版本,所以要将所有camel系列组件版本都调整为2.22.1
2)修改EmployeeServiceImpl服务类,添加定时器,在这个定时器里调用前面的"direct:write"这个端点,每5秒钟执行一次

//定时任务触发
        from("quartz2:translate?cron=0/5 * * * * ?&job.name=write&stateful=true")
                .log("Start to translate.... ")
                .to("direct:write");

3)重启程序,查看输出

2021-05-16 00:38:52.161  INFO 8344 --- [           main] com.javainuse.SpringBootJdbcApplication  : Started SpringBootJdbcApplication in 11.138 seconds (JVM running for 14.399)
2021-05-16 00:38:55.027  INFO 8344 --- [amel-1_Worker-1] route4                                   : Start to translate.... 
[{empId=888, empName=Jack}, {empId=cmp001, empName=Jack}]
2021-05-16 00:39:00.004  INFO 8344 --- [amel-1_Worker-2] route4                                   : Start to translate.... 
[{empId=888, empName=Jack}, {empId=cmp001, empName=Jack}]
2021-05-16 00:39:05.002  INFO 8344 --- [amel-1_Worker-3] route4                                   : Start to translate.... 
[{empId=888, empName=Jack}, {empId=cmp001, empName=Jack}]
2021-05-16 00:39:10.002  INFO 8344 --- [amel-1_Worker-4] route4                                   : Start to translate.... 
[{empId=888, empName=Jack}, {empId=cmp001, empName=Jack}]
2021-05-16 00:39:15.003  INFO 8344 --- [amel-1_Worker-5] route4                                   : Start to translate.... 
[{empId=888, empName=Jack}, {empId=cmp001, empName=Jack}]

...

可以看到,定时任务正常运行了,每5秒一次

上一篇 下一篇

猜你喜欢

热点阅读