2016-04-02 30 views
0

Her dakika birkaç sunucuya yüzlerce dosya gönderiyoruz. : java veya kabuk betiği?

Şu anda sadece sunucusu komutları içerir (Java ile dosyaları gibi) kabuk komut üretilmesi ve kabuk komut olarak yürütme. Java kullanmamızın nedeni, dosyaları hedef yol ve hedef sunucuya göre organize etmektir. Sonunda, her hedef sunucu için bir kabuk betiğine sahip olacağız.

Şimdi ben senaryoyu üreten ve Şu anda 4 sunucular için komut dosyaları oluşturmak için 4 ila 5 saniye sürer o

yürütme yerine java kodu kendisi yoluyla dosya gönderirseniz daha verimli ve hızlı olacak düşünüyorum. Böylece gerçek sftp'nin yürütülmesi 5. saniyede başlar ve çok hızlı bir şekilde bitirilir (dosya sayısına göre). JSch gibi java sftp'ye geçersem, kabuk betiğinde sftp ile aynı hızlı mı yoksa daha yavaş mı olacak?

+1

Bir Java uygulamasının kabuk uygulamasından daha hızlı olabileceği pek çok yol var. Ama aslında her ikisinin de uygulanmasına bağlı olsun ya da olmasın, bu gerçekten yığın akış için makul bir kapsamı ile yanıtlanabilir bir soru değildir. Benim önerim, sürecin mevcut yavaşlığının ne kadarının bir problem olduğunu araştırmak, bir Java uygulamasının ne kadar zaman alacağını araştırmak, ve eğer olası kazançların çabaya değeceğini düşünüyorsanız, sadece bunu yapıp nasıl yapıldığını görmek Bir fark yaratır. – Cubic

+0

Komut dosyaları oluşturmak neden 4-5 saniye sürer? Bu verimsizlikleri aramak için iyi bir yer gibi görünüyor. Bir komut dosyası oluşturabilir ve bir sonraki oluşturmadan önce çalıştırabilir misiniz? – chicks

cevap

1

Neyi başarmak istediğinize bağlıdır. Bu çözümün bakımı da bir faktördür, apache-deve'yi ftp bileşeni https://github.com/apache/camel/tree/master/examples/camel-example-ftp ile kullanmanızı öneririm. Kontrol ve esneklik verir. Kabuk betikleri üretimi yok. Ve en önemlisi bir uygulama (gerekirse) bir uygulama yazabilir veya zaten var olan bir parçası yapabilirsiniz.

+0

sftp desteği http://camel.apache.org/ftp2.html – gmaslowski

İlgili konular