繁体   English   中英

Python - 定期运行脚本

[英]Python - Run script periodically

现在我有一些脚本我想自动定期运行,比如每两天运行一次。

我的结构方式看起来像这样。

脚本1:

def example1():
    #Some Selenium code

example1()

脚本2:

def example2():
    #Some more Selenium code

example2()

脚本3:

import Script1
import Script2

你会注意到,'Script1' 和 'Script2' 已经调用了它们的主 function,所以在 'Script3' 中我只需要导入脚本,而不是调用函数(虽然这对我有用,但我不确定是否这是一种安全的方法/良好做法)。

我的问题:如果我使用schedule每 x 天运行一次“Script3”,这是否意味着脚本将永远运行,或者它是否每 x 天运行一次,然后进入睡眠模式,直到它必须再次运行? 此外,要让它运行,它需要 PC 始终处于开启状态,对吗?

如果是这样,有什么方法可以让它自动并定期运行,即使在 PC 关闭的情况下?

提前致谢!

我想 Windows 调度程序的工作方式与 linux 中的 cron 作业相同。 所以实际上在创建“任务”之后,windows 每秒都会检查一下他是否需要执行任何任务。 但这是一直在做的,所以如果你担心的话,这对性能没有影响。 然后只是为了澄清:

  1. Windows 看到调度的批处理文件并按时执行。
  2. Windows 在批处理文件中执行 python 脚本,脚本完成。
  3. Windows 不断检查调度程序,但脚本的进程“死亡”。

即使在 PC 关闭的情况下也能做到这一点,这是不可能的。

我不确定这是否是一种安全的方法/良好的做法

Python之禅说; “显式胜于隐式。” 所以最好使用:

 import script1
 import script2

 script1.example1()
 script2.example2()

通常不建议模块在导入时运行代码。 导入模块最好不要有副作用。

如果我使用时间表

可能有不止一个名为“schedule”的程序。 你可以说得更详细点吗?

有什么方法可以让它自动并定期运行,即使在 PC 关闭的情况下

定期运行脚本的方法不止一种。 Linux 等类 UNIX 系统具有cronatrun 其他系统有自己的方式。

但所有这些都只在机器开启时工作。 在没有额外硬件的情况下,通常不可能在 PC 上定期打开机器。 除非你能得到英特尔管理引擎来做你的投标。

诸如 ESP32(可以运行micropython )之类的微控制器确实为此目的具有“深度睡眠”模式,但我有点怀疑它们是否可以运行 selenium。 :-)

如果您使用的是 Linux 或任何其他基于 Unix 的操作系统,那么您可以使用 Cron 进行作业调度。 但是,如果您在 cron 作业运行时关闭,系统会关闭并且 cron 作业会停止(或不运行)。

您可以检查的另一种选择是 anacron。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM