2010-07-06 21 views
7

Daha büyük bir veri kümesinin bir parçasında bir programı çalıştıran bir bilgisayar kümesi oluşturmak için twisted'i kullanmaya çalışıyorum.twisted: bir istemci, birçok sunucu

"Sunucularım", istemciden bir veri yığını alır ve x komutunu çalıştırın.

"İstemcim" her biri bir veri yığını vererek ve x komutunu çalıştırmak için hangi parametrelerin verildiğini belirten birden çok sunucuya bağlanır.

Sorum şu: Birçok sunucularına bağlanmak için reaktör döngü kurmak için bir yol yoktur:

reactor.connectTCP('localhost', PORT, BlastFactory()) 
reactor.run() 

yoksa benim paradigma içinde istemci ve sunucu takas gerekiyor?

+0

Çalışma xmlrpclib:

Veya en basit yerde, sen böyle tüm gösteri kapalı reactor.run() tekmeler, önce birden bağlantı girişimlerini ayarlayabilirsiniz. – mcandre

+0

"[ne olursa olsun] istemcilere bağlanın" TCP-IP'nin nasıl çalıştığını değil - istemci (ler) bağlantıyı yapıyor, sunucu (lar) bağlı olsun. _to_ (her iki sunucunun da "eşleri" olabilir) peer-to-peer olanlar dışında birkaç popüler protokolleri olsa da). –

+0

@Alex Martelli: Bu bir tür-o. Bu noktada istemcileri ve sunucuları hala karıştırıyorum. –

cevap

8

Birden çok kez connectTCP numaralı telefonu arayın.

hile, elbette, reactor.run() "sonsuza kadar" blokları (programın tamamı çalışma zamanı) Böylece o birden çok kez aramak istediğiniz kalmamasıdır.

Birkaç seçeneğiniz var; Gelecekteki bağlantıları yapmak için zamanlanmış bir çağrı kurabilir veya bağlantınızdaki etkinliklerden yeni bağlantılar başlatabilirsiniz (connectionLost veya clientConnectionFailed gibi).

for host in hosts: 
    reactor.connectTCP(host, PORT, BlastFactory()) 
reactor.run() 
+0

Bunu yapabileceğimi bilmiyordum, çiş! –

İlgili konular