dinamik çoklu paralel görevler arasında evsahibi değiştirmek için bir yolu var mı? Şimdiye kadar sahip olduğum şey bu. task_1
gerçekleştirmesi durumunda ana çalıştırmak için task_2
Kumaş kütüphanesi ile Dinamik Sunucular ve Paralel Görevler
def init_hosts():
env.hosts = [host1,host2,host3,host4]
@parallel
def task_1():
if condition is False:
env.hosts.remove(env.host)
@parallel
def task_2():
run('uname -s')
Açıkçası bazı
env
paramenters özlüyorum, ama ben sadece istiyorum.
task_2
'un ana bilgisayar başlangıç listesi başlangıçta başlatıldı, çünkü
init_hosts()
'da tanımlanan ilk
env.hosts
listesinde tüm ana bilgisayarlarda çalışıyor. Aynı zamanda dinamik olarak değiştirmeyi ve roledef oluşturmayı denedim ama aynı sonucu aldım.
Düzenleme: Ayrıca, çoklu paralel görevler sırayla paralel ziyade içinde yürütülür şekilde paralel yürütme kuyruğu kurulum için bir yol var?
Düzenleme: I) (yürütmek geçmek için her görev dönüşü çıkışını sahip ve yeni ev sahibi listesi oluşturmak için çıkış ayrıştırma benim istenen sonucu başardı:
def init_hosts():
env.hosts = [host1,host2,host3,host4]
@parallel
def task_1():
if condition is False:
return False
else:
return True
@parallel
def task_2():
run('uname -s')
def run_tests():
results = execute(task_1)
successful_hosts = [k for k in results.iterkeys() if results[k]]
execute(test_2, hosts=successful_hosts)
Bu çalışır, ancak var pek çok nedenden dolayı brüt. Daha iyi bir yolu var mı?