我使用vSphere API,這裏是我處理的線路:使此代碼非阻塞
task = vm.PowerOff()
while task.info.state not in [vim.TaskInfo.State.success, vim.TaskInfo.State.error]:
time.sleep(1)
log.info("task {} is running".format(task))
log.ingo("task {} is done".format(task))
這裏的問題是,這個塊的執行完全而任務未完成。我希望日誌部分能夠「並行」運行,所以我可以開始其他任務。
我想過創建一個函數來接受一個任務作爲參數,並且像現在一樣輪詢info.state
屬性,但是如何讓這個非阻塞?
編輯:我使用Python 2.7
你好,謝謝你的回答。我默默地說我在Python 2.7中,我正在編輯我的文章:) – EddaSnorra
好的,在這種情況下,您可以使用python的線程模塊。創建一個工作者來完成這個任務,然後在工作完成時加入()該工作者。 –
我會試試看,謝謝 – EddaSnorra