首页 > 解决方案 > 如何在 Python 中每 24 小时调用一次函数?我目前正在使用 Threading 同时运行 Flask 服务器和函数

问题描述

现在,我正在尝试使用名为 MEE6 的机器人创建一个跟踪 Discord 用户进度 (XP) 的图形网站,这是我的repl。现在,我正在使用 Threading 创建两个单独的线程 - 一个用于 Web 服务器,一个包含一个带有内部函数的 while 循环:

def func():
    while True:
        backend.get_details()
        time.sleep(86400)

这应该使函数每 24 小时运行一次,但正如数据库中的时间戳所证明的那样:

  "05-November-2021 00:02:58": 2106855,
  "05-November-2021 00:52:48": 2106855,
  "05-November-2021 01:23:21": 2106855,
  "05-November-2021 03:48:13": 2106874,
  "05-November-2021 07:13:40": 2106874

它不是。我怎样才能解决这个问题?

这是我的线程代码:

def keep_alive():
server = Thread(target=run)
data = Thread(target=func)
server.start()
data.start()

def run():
    app.run(host="0.0.0.0", port=8000)

if __name__ == '__main__':
    # s.run()
    # os.system('cls')
    keep_alive()
    # print('i')

标签: pythonflaskscheduled-taskspython-multithreading

解决方案


您是否尝试过使用schedule软件包修复它?例如,请参阅这篇文章:

每天在同一时间做某事的 Python 脚本

要在后台运行调度程序(即在运行应用程序时),请参阅这篇出色的帖子:

如何安排一个函数在 Flask 上每小时运行一次?


推荐阅读