繁体   English   中英

每天只运行一次的方法

[英]Method to run only once a day

我必须向 API 发出请求才能获取访问令牌。 它在一天内到期,即 86400 秒或 24 小时。 新的一天开始后,我需要获取新的访问令牌。

以下是我的 API 访问代码:

def get_access_token():
    logging.info('Started to get access token')
    response = requests.post(settings.URL, data=params).json()
    logging.info('Fetched Access token')
    return response

我需要确保只有上述方法 get_access_token 每天在第一个小时运行一次。 我的整个工作每小时运行一次使用 blockscheduler。 只有上面的一段代码每天需要在第一个小时运行一次。

请让我知道如何实现?

您可以为此使用无限循环,并带有一些智能睡眠步骤:

import time
starttime=time.time()
interval=86400 
while True:
  get_access_token()
  time.sleep(interval - ((time.time() - starttime) % interval))

如果您希望程序在第一个小时运行,只需确保您第一次在该时间运行它。

如果您在 Linux 环境中工作, cron将帮助您实现这一目标。

  1. 让你的代码在script.py执行
  2. 在终端执行crontab -e
  3. 设置一个新行,例如:

     0 9 * * * python /path/to/your/script/script.py >/dev/null 2>&1

这将在每天上午 9:00 执行您的脚本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM