如何在Python脚本执行完成后延迟指定时长再次运行?——加密货币交易Bot定时重复执行需求
实现交易Bot执行后延迟1分钟重复运行的方案
当然可以实现!给你的加密货币交易Bot加上执行后延迟1分钟的循环逻辑,有几种简单靠谱的方式,不用动太多核心交易代码就能搞定。下面给你两种常用的实现思路:
方法1:用Python内置的time.sleep(无需额外依赖)
这是最直接的方式,利用Python自带的time模块来实现延迟。你只需要把Bot的核心执行逻辑封装成一个函数,然后用无限循环包裹,每次执行完函数后暂停60秒即可。
为了避免Bot因为单次执行出错就直接崩溃,建议加上异常捕获逻辑:
import time def run_trading_bot(): # 这里替换成你的核心交易Bot逻辑(扫描加密货币信息、执行交易等) print("Bot本次执行完成,准备延迟1分钟后再次运行...") if __name__ == "__main__": while True: try: # 执行Bot核心逻辑 run_trading_bot() except Exception as e: print(f"Bot执行过程中出现错误: {str(e)}") # 出错后也延迟1分钟,避免频繁报错 time.sleep(60) # 正常执行完成后,延迟1分钟再进入下一轮循环 time.sleep(60)
这种方式的好处是逻辑简单,不需要安装任何第三方库,而且两次执行的间隔是「核心逻辑执行时间 + 60秒」,适合核心逻辑执行时间较短的场景。
方法2:用schedule库(更优雅的定时任务)
如果你想要更灵活的定时控制(比如后续可能调整间隔时间、添加其他定时任务),可以用第三方库schedule来实现,它的语法更直观,可读性更强。
首先需要安装库:
pip install schedule
然后示例代码:
import schedule import time def run_trading_bot(): # 替换成你的核心交易Bot逻辑 print("Bot本次执行完成...") # 配置定时任务:每1分钟执行一次Bot逻辑 schedule.every(1).minutes.do(run_trading_bot) if __name__ == "__main__": # 无限循环检查并执行待运行的任务 while True: schedule.run_pending() time.sleep(1) # 每秒检查一次任务状态,避免占用过多CPU
注意:如果你的Bot核心逻辑执行时间超过1分钟,schedule默认会跳过下一次触发(直到当前任务完成),如果需要强制按固定间隔执行,可能需要结合多线程处理,不过一般交易Bot的单次执行时间不会这么久,这个方案足够用。
额外注意事项
- 如果需要让Bot在后台持续运行(比如服务器上),可以用
nohup命令或者配置成系统服务(如systemd),避免终端关闭后Bot停止运行。 - 建议在循环中添加日志记录,方便后续排查执行过程中的问题。
内容的提问来源于stack exchange,提问作者Asandhu22
相关产品推荐
相关产品推荐

