如何计算apache camel路由器的开始时间和结束时间?

时间:2017-03-22 04:46:04

标签: spring apache-camel

我正在尝试捕获apache camel路由器的开始时间和结束时间。 我们正在使用camel进行消息传递,我们已经实现了soap服务,而且石英是在下面的骆驼路由器中

public class BbdDmsBatchRoute extends RouteBuilder{



    @BeanInject
    private BbdImageProcessorBean bbdImageProcessorBean;

    @BeanInject
    private SwtDEAStockProcessorBean swtDEAStockProcessorBean;

    @Value("${bbd.batch.enabled}")
    private String isBatchEnabled;

    @Value("${bbd.dmsStockBatch.interval}")
    private String bbdDmsBatchInterval ;

    private static final Logger LOG = LoggerFactory.getLogger(BbdDmsBatchRoute.class);

    @Override
    public void configure() throws Exception {

        //***********Batch Job to get BBD images**************//
                //  This Batch Job will run based on time given in properties file for "bbd.batch.interval" property (bbd.batch.interval=0+0+12+1/1+*+?+*)   
                LOG.info("BBD Batch Job Cron expression {}",bbdDmsBatchInterval);

                from("quartz2://STouchDmsBatch/bbdDailyJob?cron="+ bbdDmsBatchInterval)
                .choice()            
                 .when(simple(isBatchEnabled))
                    .doTry()
                    .bean(bbdImageProcessorBean, "bbdReRunDmsBatchInvocation") 
                    .split(bodyAs(List.class))                          //Split each object in list and process in parallel
                    //.executorServiceRef("executerRefProfile").parallelProcessing()                    
                    .to("direct:batchJobRouteUnitWork")
                    .end()
                    .endDoTry()
                    .doCatch(Exception.class)
                    .to("direct:BbdReRunError")
                    .end();


        }
}

我想计算当我的quartz2:StouchDmsBatch被触发时的startime和当路由完成时没有任何异常的endTime。

我红色的几个例子,告诉使用camel拦截器,EventSupport等。 我想知道是否有人实施了相同的? 有人可以帮我这个吗?

2 个答案:

答案 0 :(得分:0)

您可以将此类添加为bean。然后启用您感兴趣的事件。然后,您可以查看每个步骤需要多长时间。 http://camel.apache.org/eventnotifier-to-log-details-about-all-sent-exchanges.html

答案 1 :(得分:0)

请参阅..如果您只想在某个时刻捕获当前时间,然后在某处使用它进行日志记录...您可以将当前时间存储在交换属性中,然后在任何您喜欢的地方使用它。

How to time portions of an apache camel route?