在python中编写轮询函数的更好方法

Rej*_*ran 3 python python-2.x python-3.x

我写了一个轮询函数来检查reg_result变量的值120秒.

reg_result = 0
while_timeout = time.time() + 120
while reg_result is not "REGISTERED" and time.time() < while_timeout:
    reg_result = LeshanObj.validate_reg_time(parameter_1)
Run Code Online (Sandbox Code Playgroud)

有没有其他更好的方法来编写轮询方法?

是不是可以通过while循环?

小智 6

python Polling中有一个库(https://pypi.python.org/pypi/polling/0.3.0)你可以用它

from polling import TimeoutException, poll
try:
    poll(lambda: reg_result=='REGISTERED', timeout=120, step=1)
except TimeOutException as tee:
    print "Value was not registered"
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.

  • 现在有更好的选择:请参阅 https://pypi.org/project/polling2/ (2认同)