Nasıl Kumaş bir hata aldığında göreve devam etmek için
Ben bir görev birkaç uzak sunucularda çalıştırmak için tanımlarken, görev sunucusu üzerinde çalışır ve bir hata ile çıkar, Kumaşı kes ve görevi iptal eder. Ama kumaş hatayı yok sayıp görevi çalıştırmak Bir sonraki server üzerinde yapmak istiyorum. Nasıl bunu yapabilir miyim?
Örneğin:
$ fab site1_service_gw
[site1rpt1] Executing task 'site1_service_gw'
[site1fep1] run: echo 'Nm123!@#' | sudo -S route
[site1fep1] err:
[site1fep1] err: We trust you have received the usual lecture from the local System
[site1fep1] err: Administrator. It usually boils down to these three things:
[site1fep1] err:
[site1fep1] err: #1) Respect the privacy of others.
[site1fep1] err: #2) Think before you type.
[site1fep1] err: #3) With great power comes great responsibility.
[site1fep1] err: root's password:
[site1fep1] err: sudo: route: command not found
Fatal error: run() encountered an error (return code 1) while executing 'echo 'Nm123!@#' | sudo -S route '
Aborting.
CEVAP
... Kumaş varsayılan bir “fail-fast” davranış kalıbı: eğer herhangi bir terslik gibi bir uzaktan program döndükten sıfır olmayan bir dönüş değeri veya fabfile bu Python kodu karşılaşmış bir istisna, yürütme durdurmak hemen.
Bu genellikle istenen bir davranıştır, ama bu kuralın birçok istisnası vardır, Kumaş env sağlar.warn_only, Boolean ayarı. Yanlış, yani bir hata durumu için varsayılan program hemen iptal ediliyor neden olacaktır. Ancak, env.warn_only başarısızlık zamanında Gerçek–, diyelim ki, ayarları içerik yöneticisi ile Kumaş bir uyarı iletisi verir ama yürütme devam edecektir.
Görünüşe göre hatalar: ** 6, bir şey kullanarak ihmal olduğu üzerinde ince taneli kontrol egzersiz yapabilirsiniz
sudo('mkdir tmp') # can't fail
with settings(warn_only=True):
sudo('touch tmp/test') # can fail
sudo('rm tmp') # can't fail
Ruby, nasıl bir döngü atlayabilirim .h...
Nasıl Visual Studio'da devam eden bir ...
Nasıl özel yöntemleri, alanları veya i...
Bir dize kontrol etmek için nasıl &quo...
Nasıl iPhone SDK üzerinde etkin bir İn...