![](/img/trans.png)
[英]Python Script Not Executing When Run By a Bash Script Called Periodically by Cron
[英]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 每秒都会检查一下他是否需要执行任何任务。 但这是一直在做的,所以如果你担心的话,这对性能没有影响。 然后只是为了澄清:
即使在 PC 关闭的情况下也能做到这一点,这是不可能的。
我不确定这是否是一种安全的方法/良好的做法
Python之禅说; “显式胜于隐式。” 所以最好使用:
import script1
import script2
script1.example1()
script2.example2()
通常不建议模块在导入时运行代码。 导入模块最好不要有副作用。
如果我使用时间表
可能有不止一个名为“schedule”的程序。 你可以说得更详细点吗?
有什么方法可以让它自动并定期运行,即使在 PC 关闭的情况下
定期运行脚本的方法不止一种。 Linux 等类 UNIX 系统具有cron
和atrun
。 其他系统有自己的方式。
但所有这些都只在机器开启时工作。 在没有额外硬件的情况下,通常不可能在 PC 上定期打开机器。 除非你能得到英特尔管理引擎来做你的投标。
诸如 ESP32(可以运行micropython
)之类的微控制器确实为此目的具有“深度睡眠”模式,但我有点怀疑它们是否可以运行 selenium。 :-)
如果您使用的是 Linux 或任何其他基于 Unix 的操作系统,那么您可以使用 Cron 进行作业调度。 但是,如果您在 cron 作业运行时关闭,系统会关闭并且 cron 作业会停止(或不运行)。
您可以检查的另一种选择是 anacron。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.