how to schedule a timed event in python
我想在python中安排一个重复的定时事件,如下所示:
"在时间X发射功能Y(在一个单独的线程中)并每小时重复一次"
"X"是固定时间戳
代码应该是跨平台的,所以我想避免使用像"cron"这样的外部程序来执行此操作。
代码提取:
1 2 3 4 5 6 7 8 9 10 | import threading threading.Timer(10*60, mail.check_mail).start() #... SET UP TIMED EVENTS HERE while(1): print("please enter command") try: command = raw_input() except: continue handle_command(command) |
为您的计划创建
1 2 3 4 5 | for ts in rr: now = datetime.now() if ts < now: time.sleep((now - ts).total_seconds()) # do stuff |
或者是一个更好的解决方案,可以解决时钟变化:
1 2 3 4 5 6 7 8 | ts = next(rr) while True: now = datetime.now() if ts < now: time.sleep((now - ts).total_seconds() / 2) continue # do stuff ts = next(rr) |