我試圖處理織物上的故障,但我在文檔中看到的示例太過本地化,不適合我的口味。如果任何一個操作失敗,我需要執行回滾操作。我試過了,然後,利用上下文來處理它,就像這樣:處理織物故障
@_contextmanager
def failwrapper():
with settings(warn_only=True):
result = yield
if result.failed:
rollback()
abort("********* Failed to execute deploy! *********")
然後
@task
def deploy():
with failwrapper():
updateCode()
migrateDb()
restartServer()
不幸的是,當這些任務之一失敗,我不上result
得到任何東西。
有沒有辦法完成這個?還是有另一種處理這種情況的方式?