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、创建任务:进入控制面板-》系统和安全-》管理工具-》计划任务-》创建任务

windows中python实现自动化部署

2、触发器:因为我们要每隔一段时间就要检测库中数据,所以需要设置一下执行时间和重复任务间隔时间,保证任务每过一段时间就要执行

windows中python实现自动化部署

3、操作:这里需要选择python地址、脚本地址、脚本执行位置

windows中python实现自动化部署

4、至此定时任务就部署完成,等到指定时间后,就会触发python的脚本,每天定时的跑数据

来源:https://blog.csdn.net/qq_37604998/article/details/126307755

标签:python,自动化部署
0
投稿

猜你喜欢

  • Python进阶之协程详解

    2023-08-23 04:52:52
  • PHP实现页面静态化的超简单方法

    2023-11-18 17:13:24
  • Python操作lxml库实战之Xpath篇

    2023-12-26 23:08:00
  • vue之计算属性的缓存computed的用法解读

    2024-05-11 09:14:05
  • python DataFrame 取差集实例

    2021-06-06 01:22:24
  • 通过Django Admin+HttpRunner1.5.6实现简易接口测试平台

    2023-05-24 19:07:45
  • python读取word 中指定位置的表格及表格数据

    2021-04-10 02:42:21
  • JavaScript验证图片类型(扩展名)的函数分享

    2024-04-17 09:51:00
  • Python中is和==的区别详解

    2022-08-22 10:53:09
  • Python实现GUI学生信息管理系统

    2022-03-19 19:35:36
  • 浅析MysQL B-Tree 索引

    2024-01-17 00:20:44
  • Python图像处理之图像的灰度线性变换

    2021-12-16 22:30:58
  • python调用支付宝支付接口流程

    2022-01-15 14:04:45
  • python爬虫 urllib模块发起post请求过程解析

    2022-02-07 22:52:53
  • asp如何用HtmlEncode来显示Unicode编码?

    2010-06-12 12:49:00
  • 基于Python+Pygame实现变异狗大战游戏

    2021-04-19 09:46:45
  • 浅谈Python类的单继承相关知识

    2023-07-31 15:18:53
  • Python datetime模块的使用示例

    2022-10-20 22:33:39
  • 对python pandas读取剪贴板内容的方法详解

    2023-07-11 09:15:45
  • mysql 表索引的一些要点

    2024-01-24 04:06:51
  • asp之家 网络编程 m.aspxhome.com