Python每五分钟重复一次算法
我需要编写一个Python代码,以便准确地每隔五分钟重复一次交易算法。我尝试过的所有解决方案,例如Sleep()都将计算机器时间,这不是我想要的 我需要在调用之间保留状态。。。我希望算法每5分钟运行一次(例如14:00;14:05;14:10;14:15……)。该算法(检索数据并计算数字)本身大约需要12秒才能执行。如果计算机挂起,我将跳过迭代 编辑 根据您的评论:“我希望算法每5分钟运行一次(例如14:00;14:05;14:10;14:15……)” 使用和无限循环:Python每五分钟重复一次算法,python,loops,time,Python,Loops,Time,我需要编写一个Python代码,以便准确地每隔五分钟重复一次交易算法。我尝试过的所有解决方案,例如Sleep()都将计算机器时间,这不是我想要的 我需要在调用之间保留状态。。。我希望算法每5分钟运行一次(例如14:00;14:05;14:10;14:15……)。该算法(检索数据并计算数字)本身大约需要12秒才能执行。如果计算机挂起,我将跳过迭代 编辑 根据您的评论:“我希望算法每5分钟运行一次(例如14:00;14:05;14:10;14:15……)” 使用和无限循环: import time
import time
import datetime
while True:
if datetime.datetime.now().minute % 5 == 0:
#do algorithm
time.sleep(60)
编辑
根据您的评论:“我希望算法每5分钟运行一次(例如14:00;14:05;14:10;14:15……)”
使用和无限循环:
import time
import datetime
while True:
if datetime.datetime.now().minute % 5 == 0:
#do algorithm
time.sleep(60)
如果您在linux环境中工作,则可以使用cron作业来实现这一点。按打开cron选项卡
crontab -e
以下将每5分钟启动一个python脚本cronjob.py:
5 * * * * python /path/to/script/cronjob.py
编辑:由于op指定“希望算法每5分钟运行一次”:
如果您在linux环境中工作,可以为此使用cron作业。按打开cron选项卡
crontab -e
以下内容将每隔5分钟启动一个python脚本cronjob.py:
5 * * * * python /path/to/script/cronjob.py
编辑:由于op指定“希望算法每5分钟运行一次”:
crunch\u numbers()
在time.time()
clock定义的5分钟边界上调用
crunch\u numbers()
在由time.time()
clock定义的5分钟边界上被调用。这可以工作,但我有一些变量需要存储在代码中,如果我使用它,我想会回到初始状态solution@DiegoDiTommaso:放置此信息(您需要“在调用之间保留状态”)我来回答你的问题。提到如果一次迭代花费的时间超过5分钟,您希望发生什么(您希望跳过下一次迭代还是同时运行两次迭代?)。如果计算机时间跳跃(向前/向后),如果计算机被挂起,您希望发生什么?是否要跳过相应的迭代?不是“每五分钟”而是“每五分钟一次”。是的,我需要保留呼叫之间的状态,很抱歉,我在第一条消息中不清楚,我的意思是,我希望算法每5分钟运行一次(例如14:00;14:05;14:10;14:15……)。该算法(检索数据并计算数字)本身大约需要12秒才能执行。如果计算机挂起,我将跳过迭代。谢谢这可能会起作用,但我有一些变量需要存储在代码中,如果我使用它,我想这些变量会回到初始状态solution@DiegoDiTommaso:将此信息(您需要“保留呼叫之间的状态”)放入问题中。提到如果一次迭代花费的时间超过5分钟,您希望发生什么(您希望跳过下一次迭代还是同时运行两次迭代?)。如果计算机时间跳跃(向前/向后),如果计算机被挂起,您希望发生什么?是否要跳过相应的迭代?不是“每五分钟”而是“每五分钟一次”。是的,我需要保留呼叫之间的状态,很抱歉,我在第一条消息中不清楚,我的意思是,我希望算法每5分钟运行一次(例如14:00;14:05;14:10;14:15……)。该算法(检索数据并计算数字)本身大约需要12秒才能执行。如果计算机挂起,我将跳过迭代。谢谢此解决方案正在运行,但仍然存在一个问题,算法将在整个第五分钟内循环,是否有方法仅执行一次?另一件事,是否有方法在不关闭控制台的情况下停止循环?为了避免第一个问题,我添加了时间。睡眠(60)
在任何情况下,要停止执行,只需按终端中的“CTRL+C”即可。此解决方案可行,但仍存在问题,算法将在整个第五分钟内循环,是否有方法只执行一次?另一件事,有没有办法在不关闭控制台的情况下停止循环?为了避免您的第一个问题,我添加了一个时间。睡眠(60)
在每种情况下要停止执行,只需在terminalrelated:related中按“CTRL+C”: