我需要编写一个Python代码,以便在每小时的每一分钟重复一次交易算法。我试过的所有解决方案,例如Sleep()都会将机器时间相加,这不是我想要的。
我需要保持调用之间的状态,...我希望算法每5分钟运行一次(例如14:00; 14:05; 14:10; 14:15 ......)。算法(重新获取数据和计算数字)本身需要大约12秒才能执行。如果计算机被暂停,我将跳过迭代。
答案 0 :(得分:1)
修改强>
根据您的评论:"我希望算法每5分钟运行一次(例如14:00; 14:05; 14:10; 14:15 ......) " 强>
使用datetime和无限循环:
import time
import datetime
while True:
if datetime.datetime.now().minute % 5 == 0:
#do algorithm
time.sleep(60)
答案 1 :(得分:1)
如果你在linux环境中工作,你可以使用cron作业。通过
打开cron选项卡crontab -e
以下将每隔5分钟启动一个python脚本cronjob.py:
5 * * * * python /path/to/script/cronjob.py
编辑:因为op指定“希望算法每5分钟运行一次”:
*/5 * * * * python /path/to/script/cronjob.py
答案 2 :(得分:0)
import time
while True:
time.sleep(300 - time.time() % 300)
crunch_numbers()
在crunch_numbers()
时钟定义的5分钟边界上调用 time.time()
。