Python - 每 10 分钟暂停整个脚本

Python - Pause entire script every 10 minutes

需要一种方法让脚本先暂停 运行 10 分钟后再暂停 2 分钟,然后让此过程自行重复。我需要脚本本身在 10 分钟内继续 运行ning。

我尝试使用线程,但发现它实际上并没有暂停脚本的其余部分。

编辑:添加代码以提供视角。希望这有助于解释我的问题。

您的代码有一个很好的循环,您可以在其中植入暂停,如下所示:

from datetime import datetime, timedelta
...

def start():
    lastsleep = datetime.now()                                    # <-- new
    while True:
        openBank()
        gear()
        invCheck()
        timer = random.uniform(33, 37)
        print("Sleep time: %s" % timer)
        time.sleep(timer)

        if (datetime.now() - lastsleep) > timedelta(minutes=10):  # <-- new
            time.sleep(2*60)
            lastsleep = datetime.now()

请注意,它不会在 10 分钟后恰好休眠,而是在 10 分钟结束并到达检查点时休眠。这可能是 10:12 或 13:47 分钟,具体取决于其他代码(openBank()gear() 等)之前执行的操作。


显示代码前的回答:

问题是:我们没有关于您的代码的信息。

如果你有

something = getSomething()
something.DoSomeVeryExpensiveOperation()  # takes 25 minutes

没有什么好的方法可以在 10 分钟后中断或暂停该方法。

我能想到的通用方法的唯一方法是这样的:

  • 使用多处理
  • 从外部监控流程
  • 10分钟后,挂起进程的所有线程
  • 睡2分钟
  • 恢复进程的所有线程

在你这样做之前,你应该知道why you should never suspend a thread