2016-04-08 27 views
3

Csv dosyasıyla http url'ye erişebilen ve yalnızca içeriğini basabilen bir rota oluşturmaya çalışıyorum. Maalesef dosya sürekli okunmaktadır.Apache deve kullanarak csv dosyasını http'den sadece bir kez nasıl okuyabilirim?

  1. Sadece bir kez okumak ve sonra işlemeyi durdurmak mümkün mü?
  2. Neden "doğrudan: başlat" bu örnekte çalışmıyor ve zamanlayıcı kullanmalıyım?

    context.addRoutes(new RouteBuilder() { 
          public void configure() { 
           from("timer://start?delay=5000") 
             .to("http4://127.0.0.1:18080/data.csv") 
             .unmarshal().csv() 
             .process(new Processor() { 
              @Override 
              public void process(Exchange exchange) throws Exception { 
               String list = exchange.getIn().getBody(String.class); 
               log.info(list); 
            //Here I would like to stop the route when file reading is finished 
              } 
             }); 
         }); 
    

    Teşekkür: Burada

benim kodudur!

+0

Eğer resmi belgelerine bir göz var mı? [http://camel.apache.org/how-can-i-stop-a-route-from-a-route.html](http://camel.apache.org/how-can-i-stop- a-route-from-a-route.html) – Frank

cevap

2

Zamanlayıcı her 5 saniyede bir aramaya devam edecektir. Zamanlayıcıyı yalnızca bir kez aramak isterseniz, repeatCount=1: http://camel.apache.org/timer

'u ayarlayabilirseniz, yalnızca bir kez çalışmasına izin vermek istediğinizi düşünmeniz gerekebilir. Bir daha sonra bu HTTP URL'sini tekrar çağırmanız gerekirse ne olur?

Ve ayrıca Frank rotadan bir rota durdurmak için bir yol yoktur yorumladı olarak: http://camel.apache.org/how-can-i-stop-a-route-from-a-route.html

+1

Evet .., @Peters_, Bu, rotalarınızda istisna işleme eklenmesi sorunudur. 1. Ne http bağlantısı, bağlantı sorunları nedeniyle başarısız oldu? 2. Ya da bir bağlantı istisnası var mı? Ayrıca bu güzergâhı her gün bir kez çalıştırmak isteyebilirsiniz? Yapabileceğin çok şey var, ne kullanmak istediğinize bağlı. – gnanagurus

+0

Aslında, başka bir bağlantı noktasını dinlerken iskeleyi kullanan ikinci güzergahıma http istekleri geldiğinde, her zaman bu rotayı başlatmak istiyorum. Http isteği olduğunda ana rotayı başlatmak, csv dosyasını işlemek ve rotayı durdurmak istiyorum. Tekrarlamak mümkün olmalıdır. –