You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现每1分钟执行一次函数并在1小时后停止?

实现每1分钟执行函数、1小时后停止的解决方案

简单实现版本

直接在每次执行函数后等待60秒,同时监控总运行时长:

import datetime
import time

def funcprint():
    ct = datetime.datetime.now()
    print("After 1 minute:-", ct)
    return 

# 总运行时长设为1小时(3600秒)
total_run_duration = 60 * 60
start_timestamp = time.time()

while True:
    # 执行目标函数
    funcprint()
    
    # 计算已运行时长
    elapsed = time.time() - start_timestamp
    # 检查剩余时间是否足够再等待1分钟,如果不够就终止循环
    if elapsed + 60 > total_run_duration:
        break
    
    # 等待1分钟(60秒)
    time.sleep(60)

精准间隔版本

如果需要严格保证每1分钟执行一次(避免函数执行耗时导致的间隔累计误差),可以通过计算下一次执行的时间来实现:

import datetime
import time

def funcprint():
    ct = datetime.datetime.now()
    print("After 1 minute:-", ct)
    return 

total_run_duration = 60 * 60
end_timestamp = time.time() + total_run_duration
next_run_timestamp = time.time()

while time.time() < end_timestamp:
    funcprint()
    # 计算下一次执行的时间点
    next_run_timestamp += 60
    # 计算需要等待的时长,确保间隔准确
    wait_duration = next_run_timestamp - time.time()
    if wait_duration > 0:
        time.sleep(wait_duration)

关键说明

  • 你原来的代码缺少等待逻辑,会导致函数被高频重复调用,完全不符合1分钟间隔的要求
  • 简单版本适合对间隔精度要求不高的场景,代码更直观
  • 精准版本通过固定下一次执行的时间点,避免了每次函数执行耗时带来的间隔偏差,适合需要严格定时的场景

内容的提问来源于stack exchange,提问作者adss4

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 19:43:14