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
猜你喜欢
- 具体用到了matplotlib.backends.backend_qt5agg.FigureCanvasQTAgg直接上代码(这里给出的只是
- 这篇博客将介绍Canny边缘检测的概念,并利用cv2.Canny()实现边缘检测;Canny边缘检测是一种流行的边缘检测算法。它是由约翰F开
- 本文介绍基于Python中seaborn模块,实现联合分布图绘制的方法。联合分布(Joint Distribution)图是一种查看两个或两
- Python是一门弱类型语言,很多从C/C++转过来的朋友起初不是很适应。比如,在声明一个函数时,不能指定参数的类型。用C做类比,那就是所有
- python的百分号输出比较奇怪,代码如下print('%s%%'%(5))#这样就能输出‘5%'来源:https:
- 你的设计为什么平平无奇,为什么吸引不到别人的眼球,这里先来说说什么是焦点(也可以称兴趣中心或者视觉中心),我认为用焦点更能简单准确的阐述。有
- 本文实例讲述了php常用字符串长度函数strlen()与mb_strlen()用法。分享给大家供大家参考,具体如下:int strlen (
- 素数简介质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。方法1def primeNUM(
- 在开发web的时候,如果是以前已存在的项目,项目下载下来后,为了使用测试库的数据,会直接将整个测试库(如sqlite3)拿到本机来。这种情况
- 第一:编写限制搜索范围的查询语句。众所周知,在数据库查询的时候返回记录的多少直接关系到查询的效率。所以,在客户端通过一定的条件语句,限制搜索
- 简介Pycharm安装以后必须激活后,才能正常的使用。否则就不能使用。激活PyCharm1、Activation code激活优点:Wind
- 单下划线与双下划线在 python 中,会看到 _xx, xx 以及 __xx 这样的变量或者函数名,在这里做一个简要的总结。_xx:保护(
- 我就废话不多说了,直接上代码吧!import torchimport torch.nn.functional as Fimport nump
- 1、使用基础Python代码来读写和处理CSV文件import sys#使用基础Python代码来读写和处理CSV文件input_file
- mmh3安装方法哈希方法主要有MD、SHA、Murmur、CityHash、MAC等几种方法。mmh3全程murmurhash3,是一种非加
- 导语《我的世界》是一款自由度极高的游戏,每个新存档的开启,就像是作为造物主的玩家在虚拟空间开辟了一个全新的宇宙。方块连接世界,云游大好河山。
- python环境 3.6.5 win7 linux环境同理先尝试了PyInstaller ,打包时一直提示 no module named
- 前言标准的 Bloom Filter 是一种比较简单的数据结构,只支持插入和查找两种操作。在所要表达的集合是静态集合的时候,标准 Bloom
- 本文实例讲述了Python多线程操作之互斥锁、递归锁、信号量、事件。分享给大家供大家参考,具体如下:互斥锁:为什么要有互斥锁:由于多线程是并
- 今天想围绕“产品交互设计”说说一些我们的想法,一说到产品设计,我想在坐的各位脑海里肯定联想到了很多表单设计、导航设计、界面布局等等,但是今天