SORU
21 Ocak 2009, ÇARŞAMBA


Bir komut Linux üzerinde sıradan paralel işleme (bash, python, ruby... her neyse)

Bir Linux sunucu üzerinde bir kabuk çalıştırmak için gereken komut/bir listesi var.

Ben sadece 10 çalışan işlemleri (sıradan) bir seferde en fazla sahip olmak istiyorum. Bazı işlemleri tamamlamak için birkaç saniye sürer, diğer işlemler çok daha uzun sürer.

Bir işlem "" sırasına ve idam edildi. attı sonraki komutu istiyorum tamamlandığında

Herkes kod var, bu sorunu çözmek için?

Daha fazla ayrıntı:

200 yapılması gereken iş parçaları, bazı tür bir kuyruk var. İşin en fazla 10 adet oluyor aynı anda sahip olmak istiyorum. Bir iş parçacığı bir parça tamamlandığında, çalışmanın bir sonraki parça için sıraya isteyin. Eğer sırada bekleyen çok iş varsa, bu iş parçacığı ölmeli. Bütün konuları ölünce tüm işi yapmışsınız demektir.

Çözmeye çalışıyorum asıl sorun imapsync yeni bir posta sunucusuna eski posta sunucusundan 200 posta kutusu eşitlemek için kullanıyor. Bazı kullanıcılar, büyük posta kutuları ve uzun zaman tto sync al, Diğerleri hızlı bir şekilde çok küçük posta kutuları ve sync.

CEVAP
21 Ocak 2009, ÇARŞAMBA


, xargs kabuk sırası için kullanılabilir paralel komut işleme. 3 paralel uyur her zaman sahip olmak için, örneğin, 1 saniye için her uyku ve toplam 10 uyur yürütülüyor

echo {1..10} | xargs -d ' ' -n1 -P3 sh -c 'sleep 1s' _

Ve toplam 4 saniye boyunca uyku olacaktır. Eğer bir isim listesi varsa, ve komutları idam için isimlerini geçirmek, yine paralel olarak 3 komut çalıştırmak ister

cat names | xargs -n1 -P3 process_name

Komutu process_name alice, process_name bob yürütülür.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CaptainDisillusion

    CaptainDisil

    18 EYLÜL 2007
  • Propaganda Time

    Propaganda T

    19 EYLÜL 2010
  • The Scary Snowman

    The Scary Sn

    1 ŞUBAT 2011