代码之家  ›  专栏  ›  技术社区  ›  ScottMcC

获取下一小时开始前的秒数

  •  1
  • ScottMcC  · 技术社区  · 6 年前
    • 我目前使用的restapi每小时只允许1000个查询
    • 一旦1000个查询用完,您就必须等到下一个小时的开始,计数器才会被重置
    • 我现在用的是 time.sleep

    我用 datetime 图书馆(增加两分钟以确保安全)

    import datetime
    
    # Determine the seconds until the next hour (add 2 minutes to be safe)
    now = datetime.datetime.now()
    next_hour = datetime.datetime(now.year, now.month, now.day, now.hour + 1, 2)
    sleep_seconds = (next_hour - now).seconds
    
    # Put the execution to sleep for a while
    print("Sleeping for {0} minutes...".format(sleep_seconds // 60))
    time.sleep(sleep_seconds)
    

    此脚本确实有效,但在下一个小时是第二天的开始时不可靠。

    • 0..23
    • 如果 datetime.datetime.now() 23 这个方法会失败 如果你通过了 24

    有人能提出一个更好的解决方案来解决这些问题吗?

    1 回复  |  直到 6 年前
        1
  •  7
  •   ScottMcC    6 年前

    思考 datetime.timedelta

    import datetime
    
    delta = datetime.timedelta(hours=1)
    now = datetime.datetime.now()
    next_hour = (now + delta).replace(microsecond=0, second=0, minute=2)
    
    wait_seconds = (next_hour - now).seconds   
    

    这个 replace