每隔一小时更新一次频率

时间:2020-10-10 23:17:17

标签: python-3.x tkinter

我不知道这是否可行,但是我希望我的函数每小时精确运行一次,例如,如果我运行程序16:23我希望我的函数初始运行,那么下一次运行恰好是17 :00,下一次执行是18:00,依此类推。

我正在使用Tkinter在显示屏上显示一些信息,而我想每小时运行一次的函数是:

api_address = "https://api.hgbrasil.com/weather?woeid=455839"
update_frequency = 10800000  #3H in milisegundos
def url_renova():
    global json_data
    global sunrise
    global sunset

    json_data = requests.get(api_address).json()

    sunrise = json_data['results']['sunrise']
    sunset = json_data['results']['sunset']

    sitesunrise.set(sunrise) #Go to a StrinVar and go to a Entry Widget
    sitesunset.set(sunset)

    sitesunriseEntry.after(update_frequency, url_renova)

我已经尝试按日程安排,但是没有成功,虽然没有用。感谢您的关注。

1 个答案:

答案 0 :(得分:3)

您可以轻松计算到小时数剩余的时间。有很多方法可以做到这一点。我想我只是修改time.time()的结果,就像这样:

import time
# ...
wait_time = -int(time.time()* 1000) % 3_600_000
sitesunriseEntry.after(wait_time, url_renova)