【问题标题】:Python: gevent and libfaketimePython:gevent 和 libfaketime
【发布时间】:2021-08-12 19:03:14
【问题描述】:

在工作中,我正在从旧版本的 Python 转换系统,作为其中的一部分,我需要将 gevent 升级到版本 21.1.2。

我们的一些测试在被测试的代码中使用了libfaketime.fake_timetime.sleep。然而,在新的gevent 版本中,这些睡眠永远处于睡眠状态,可能是因为时间不会改变。 time 模块确实得到了修补。

有没有办法让它在规定的时间内休眠然后醒来?

【问题讨论】:

    标签: python sleep gevent


    【解决方案1】:

    使用gevent.sleep 而不是time.sleep。您也可以随时将任何内容包裹在 Timeout 周围:

    from gevent import sleep, Timeout
    with Timeout(2, False) as timeout: # This will force it to move on after 2 seconds regardless
        sleep(10)
    

    【讨论】:

    • 我也试过了。打补丁后time.sleepgevent.sleep是一样的。原来,我没有在我的配置中设置这个:DONT_FAKE_MONOTONIC=1。很抱歉没有早点提及或删除问题
    • 如果你打补丁,那么 time.sleep 会被打补丁。但是您仍然应该使用 gevent 模块来实现前向稳定性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多