• windows+python实现自动化部署


    这段时间遇到一个需求是如果库里面有没有图片的数据,则访问我们的网站生成图片数据并更新库,要求每隔一段时间就要检测。
    该需求主要为两个部分:一是python脚本执行;二是windows部署定时任务;

    一、python脚本

    1、运行脚本:判断当前任务是否正在执行,因为使用的是谷歌浏览器,所以只用判断谷歌进程是否正在执行

    isRunning=False
    for proc in psutil.process_iter(['pid', 'name']):
    	if proc.info['name'] == 'chrome.exe':
    		isRunning=True
    
    • 1
    • 2
    • 3
    • 4

    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    3、未执行:则使用python的selenium库打开谷歌浏览器
    4、获取数据:查询当前库中没有图片的数据,然后循环使用selenium库去访问改数据的网站详情页,模拟用户点击动作,保存图片信息
    5、日志记录:如果超过限制时间未保存成功,则将记录写在日志文件中,若保存成功也将日志信息写在文件中,第二步中就用到此处的信息。

    fo = open("./img-log.txt", "a")
    fo.write("\n" + "[" + str(datetime.datetime.now()) + "] 图片执行完成")
    fo.close()
    
    • 1
    • 2
    • 3

    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    7、关闭:当整个循环执行结束后,需要关闭谷歌进程,防止状态一直是执行中,关闭命令也就是第二步中的命令

    二、windows部署定时任务

    1、创建任务:进入控制面板-》系统和安全-》管理工具-》计划任务-》创建任务
    在这里插入图片描述

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

    3、操作:这里需要选择python地址、脚本地址、脚本执行位置
    在这里插入图片描述

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

  • 相关阅读:
    Transformer时间序列预测
    java计算机毕业设计酒店管理系统设计与实现源码+mysql数据库+系统+lw文档+部署
    嵌入式面试:大疆 2023 春招
    创建型设计模式之抽象工厂模式
    【LinuxGSM搭建教程 Project Zomboid Terraria】
    《RO 仙境传说》 Game Jam 获奖名单公布!
    物联网的常用几种协议
    代码随想录(番外)图论3|1020. 飞地的数量|130. 被围绕的区域
    QT 创建多个子项目,以及调用
    排序算法复习 | 插入排序(直接插入排序、希尔排序)与选择排序(直接选择排序、堆排序)
  • 原文地址:https://blog.csdn.net/qq_37604998/article/details/126307755