我想知道pyinfra中的并行选项和无等待选项有什么区别。
我理解并行选项控制一次主机的数量,无等待选项控制主机操作是否并行工作。
我是否误解了这些选项?
我运行了“pyinfra inventory.py test_operation.py test_operation2.py”命令
# test_operation.py
from pyinfra.operations import python, server
import gevent
result = server.shell(
commands=["ls"],
)
def callback():
import time
time.sleep(5)
print(f"Got result: {result.stdout}")
python.call(
name="Execute callback function",
function=callback,
)
# test_operation2.py
from pyinfra.operations import python, server
result = server.shell(
commands=["ls"],
)
def callback():
import time
time.sleep(5)
print(f"Got result22222222: {result.stdout}")
python.call(
name="Execute callback function",
function=callback,
)
对于单个操作,标志是相同的,不同之处在于使用多个操作时。具体来说,
--parallel
操作控制并行运行每个操作的主机数量。每次操作后,pyinfra 仍会等待所有主机完成。
使用
--no-wait
,操作之间的等待被消除,每个主机将尽快执行每个操作。