windows中python实现自动化部署
作者:修复BUG中 发布时间:2023-06-24 16:04:14
这段时间遇到一个需求是如果库里面有没有图片的数据,则访问我们的网站生成图片数据并更新库,要求每隔一段时间就要检测。
该需求主要为两个部分:一是python脚本执行;二是windows部署定时任务;
一、python脚本
1、运行脚本:判断当前任务是否正在执行,因为使用的是谷歌浏览器,所以只用判断谷歌进程是否正在执行
isRunning=False
for proc in psutil.process_iter(['pid', 'name']):
if proc.info['name'] == 'chrome.exe':
isRunning=True
2、执行中:根据日志信息取出最新一条数据的时间,然后与当前时间计算,判断脚本是否长时间没生成新的数据,若长时间未生成新的数据,则关闭谷歌浏览器进程,等待下次触发。 这一步是为了防止其它用户打开浏览器没关闭,导致浏览器进程一直显示执行中。
# 判断是否超过60分钟没跑新的作品
isClear=False
if len(lines) == 0:
isClear=True
else:
interTime=int(time.time())-int(time.mktime(time.strptime(lines[-1][1:20], "%Y-%m-%d %H:%M:%S")))
if (interTime / 60)>60:
isClear=True
if isClear==True:
browserName = "chrome.exe"
cmd = "taskkill /f /t /im {}".format(browserName)
os.system(cmd)
3、未执行:则使用python的selenium库打开谷歌浏览器
4、获取数据:查询当前库中没有图片的数据,然后循环使用selenium库去访问改数据的网站详情页,模拟用户点击动作,保存图片信息
5、日志记录:如果超过限制时间未保存成功,则将记录写在日志文件中,若保存成功也将日志信息写在文件中,第二步中就用到此处的信息。
fo = open("./img-log.txt", "a")
fo.write("\n" + "[" + str(datetime.datetime.now()) + "] 图片执行完成")
fo.close()
6、错误报警:因为是自动化去跑,执行就不用关心,所以需要设置报警,当错误日志文件中达到一定条数时,通过企业微信,发送错误信息通知
headers = {"Content-type": "application/json"}
url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key="
r = requests.post(url,json.dumps({
"msgtype": "text",
"text":
{
"content": "图片保存失败数大于100"
}
}),headers)
7、关闭:当整个循环执行结束后,需要关闭谷歌进程,防止状态一直是执行中,关闭命令也就是第二步中的命令
二、windows部署定时任务
1、创建任务:进入控制面板-》系统和安全-》管理工具-》计划任务-》创建任务
2、触发器:因为我们要每隔一段时间就要检测库中数据,所以需要设置一下执行时间和重复任务间隔时间,保证任务每过一段时间就要执行
3、操作:这里需要选择python地址、脚本地址、脚本执行位置
4、至此定时任务就部署完成,等到指定时间后,就会触发python的脚本,每天定时的跑数据
来源:https://blog.csdn.net/qq_37604998/article/details/126307755


猜你喜欢
- 查看python3.4.1文档,发现对于decimal模块的讲解非常多,由此可见其功能也很强大(下面算是把我认为比较重要的半翻译半学习吧~)
- 之前看到很多人一直都问CSS 中DIV垂直居中的问题,看来对此的需求还不少。现在就把我经验拿出来分享一下,希望大家鼓鼓掌。因为在 CSS 中
- 前言如果想分布式执行用例,用例设计必须遵循以下原则:1、用例之间都是独立的,2、用例a不要去依赖用例b3、用例执行没先后顺序,4、随机都能执
- 不同的是setInterval会每隔指定的时间段就执行一次代码,具有重复性。而setTimeout只会调用后执行一次。 下面通过函数的建立和
- 本篇文章将讨论使用 Python 中的四种不同方法来使用、管理秒并将其转换为天、小时、分钟和秒。现在,让我们开始讨论这些方法并在一些示例中使
- 什么是爬虫?网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息
- 目录1. 文件相关函数2. 函数_函数的参数2.1 函数2.2 函数的参数3. 收集参数4. 命名关键字_总结小提示:5. 小练习练习问题:
- 什么是Nacos英文全称Dynamic Naming and Configuration Service,Na为naming/nameSer
- 模型VGG,数据集cifar。对照这份代码走一遍,大概就知道整个pytorch的运行机制。 来源 定义模型:'''V
- 前言在数据分析中,分组聚合二者缺一不可。对数据聚合(求和、平均值等)通常是不可避免的。pd.agg()很方便进行聚合操作。1. 创建Data
- 骨架提取与分水岭算法也属于形态学处理范畴,都放在morphology子模块内。1、骨架提取骨架提取,也叫二值图像细化。这种算法能将一个连通区
- (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) 网站的数据库连接语句为:Ser
- 1、使用mysqldump工具将MySql数据库备份mysqldump -u root -p -c --default-character-
- 在Python教程里,针对默认参数,给了一个“重要警告”的例子:def f(a, L=[]): L.append(a) &nbs
- string iconv ( string $in_charset , string $out_charset , string $str
- 本文实例为大家分享了Tensorflow实现神经网络拟合线性回归的具体代码,供大家参考,具体内容如下一、利用简单的一层神经网络拟合一个函数
- 文件操作的一般内容:# 文件的操作# 打开文件 open 打开已存在文件 或者创建一个新文件open('./Test.txt'
- tk在科学养猪群里问bluerust、scz是否碰上过这个Python坑,示例1:bas = [ 'ba1', 'b
- 创建表create table 表名create table if not exists 表名mysql> create databa
- 本文实例为大家分享了Python网站注册验证码生成类的具体代码,供大家参考,具体内容如下# -*- coding:utf-8 -*-'