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' 已经调用了它们的主要函数,所以在 'Script3' 中我只需要导入脚本,而不是调用函数(尽管这对我有用,我不确定这是否是一种安全的 approach/good 做法)。
我的问题:如果我每隔 x 天使用 schedule 到 运行 'Script3',这是否意味着脚本将永远 运行,或者它是否每 x 天 运行 一次,然后进入睡眠模式直到它必须再次 运行?另外,为了 运行 需要 PC 始终开启,对吗?
如果是这样,有什么方法可以使它 运行 自动并定期即使在 PC 关闭的情况下?
提前致谢!
如果您使用的是 Linux 或任何其他基于 Unix 的 OS,那么您可以使用 Cron 进行作业调度。但是,如果您在 cron 作业正在 运行ning 时关闭,系统将关闭并且 cron 作业停止(或者不 运行)。
您可以检查的另一种选择是 anacron。
我想 Windows 调度程序的工作方式与 linux 中的 cron 作业相同。所以实际上在创建 "task" 之后,windows 每秒检查一次以查看他是否必须执行任何任务。但这是一直在做的,所以如果你担心的话,这对性能没有影响。然后澄清一下:
- Windows看到批处理文件被调度并按时执行。
- Windows执行批处理文件中的python脚本,脚本完成。
- Windows 不断检查调度程序,但脚本 "died".
的进程
对于即使关闭 PC 也能做到这一点,这是不可能的。
I'm not sure whether this is a safe approach/good practice
Python 的禅宗说; "Explicit is better than implicit." 所以最好使用:
import script1
import script2
script1.example1()
script2.example2()
通常不建议模块在导入时使用 运行 代码。导入模块最好不要有副作用。
if I use schedule
可能不止一个名为"schedule"的程序。能具体点吗?
is there any way to make it run automatically and periodically even with the PC turned off
定期 运行 脚本的方法不止一种。 Linux 类 UNIX 系统有 cron
和 atrun
。
其他系统有自己的方式。
但所有这些仅在机器 开启 时才有效。在没有额外硬件的 PC 上,通常不可能定期打开机器。除非你能让 Intel Management Engine 执行你的命令。
ESP32 等微控制器(可以 运行 micropython
)确实具有用于此目的的 "deep-sleep" 模式,但我有点怀疑它们是否可以 运行 selenium。 :-)
现在我有一些脚本,我想 运行 自动定期执行,比如说,每两天执行一次。
我构建的方式看起来像这样。
脚本 1:
def example1():
#Some Selenium code
example1()
脚本 2:
def example2():
#Some more Selenium code
example2()
脚本 3:
import Script1
import Script2
你会注意到,'Script1' 和 'Script2' 已经调用了它们的主要函数,所以在 'Script3' 中我只需要导入脚本,而不是调用函数(尽管这对我有用,我不确定这是否是一种安全的 approach/good 做法)。
我的问题:如果我每隔 x 天使用 schedule 到 运行 'Script3',这是否意味着脚本将永远 运行,或者它是否每 x 天 运行 一次,然后进入睡眠模式直到它必须再次 运行?另外,为了 运行 需要 PC 始终开启,对吗?
如果是这样,有什么方法可以使它 运行 自动并定期即使在 PC 关闭的情况下?
提前致谢!
如果您使用的是 Linux 或任何其他基于 Unix 的 OS,那么您可以使用 Cron 进行作业调度。但是,如果您在 cron 作业正在 运行ning 时关闭,系统将关闭并且 cron 作业停止(或者不 运行)。
您可以检查的另一种选择是 anacron。
我想 Windows 调度程序的工作方式与 linux 中的 cron 作业相同。所以实际上在创建 "task" 之后,windows 每秒检查一次以查看他是否必须执行任何任务。但这是一直在做的,所以如果你担心的话,这对性能没有影响。然后澄清一下:
- Windows看到批处理文件被调度并按时执行。
- Windows执行批处理文件中的python脚本,脚本完成。
- Windows 不断检查调度程序,但脚本 "died". 的进程
对于即使关闭 PC 也能做到这一点,这是不可能的。
I'm not sure whether this is a safe approach/good practice
Python 的禅宗说; "Explicit is better than implicit." 所以最好使用:
import script1
import script2
script1.example1()
script2.example2()
通常不建议模块在导入时使用 运行 代码。导入模块最好不要有副作用。
if I use schedule
可能不止一个名为"schedule"的程序。能具体点吗?
is there any way to make it run automatically and periodically even with the PC turned off
定期 运行 脚本的方法不止一种。 Linux 类 UNIX 系统有 cron
和 atrun
。
其他系统有自己的方式。
但所有这些仅在机器 开启 时才有效。在没有额外硬件的 PC 上,通常不可能定期打开机器。除非你能让 Intel Management Engine 执行你的命令。
ESP32 等微控制器(可以 运行 micropython
)确实具有用于此目的的 "deep-sleep" 模式,但我有点怀疑它们是否可以 运行 selenium。 :-)