失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【定时器】企业微信群定时发送消息简单实现

【定时器】企业微信群定时发送消息简单实现

时间:2024-03-04 14:44:47

相关推荐

【定时器】企业微信群定时发送消息简单实现

😄作者简介:

小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD

如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。😊

座右铭:不想当开发的测试,不是一个好测试✌️。

如果感觉博主的文章还不错的话,还请点赞、收藏哦!👍

文章目录

🔥背景🔥Launchctl概述🔥plist文件是什么🔥定时器实战

🔥背景

露胳膊露的季节要到了,几个小伙伴开始约着一块锻炼,因为每天还要忙工作,我们就合计着周一、三、五 中午锻炼,周二、四晚上锻炼,以防忘记,所以就想着搞个定时提醒。基于此,我就搞了个定时器每天发送提醒消息到企业微信。主要使用的是Launchctl工具定时执行脚本。

🔥Launchctl概述

Launchctl 是 Mac 和 iOS 系统中的一个工具,用于管理应用程序的启动和停止。通过系统调用和命令行参数来实现。使用Launchctl充当定时器最合适不过了。

Launchctl常用命令可以在控制台直接输入launchctl回车即可看到相关参数,但是常用的命令有

launchctl listlaunchctl load ~/Library/LaunchAgents/local.demo.plistlaunchctl unload ~/Library/LaunchAgents/local.demo.plistlaunchctl stop ~/Library/LaunchAgents/local.demo.plist//如果任务被修改了,必须先unload,然后重新执行load

🔥plist文件是什么

.plist 文本文件是macOS应用程序使用的设置文件,也成为属性文件,采用XML格式,MacOS中的启动项都会以.plist的文件形式存储在系统的Library目录中,常用于存储应用程序的设置、配置数据等。

🔥定时器实战

第一步:创建企业微信机器人

右击群—>管理聊天消息—>添加群机器人—>新创建一个机器人

第二步:获取webhook地址

点击新创建的机器人,会看到机器人的webhook地址

第三步:编写python脚本

主要逻辑是:周一、三、五发送中午锻炼,周二、四发送晚上锻炼,具体内容如下:

#! /usr/bin/python3import typesimport requestsimport jsonimport datetime# Webhook地址webhook_url = "https://qyapi./cgi-bin/webhook/send?key=95c150-d7e3a5e01649"#获取今天周几today = datetime.datetime.now().weekday()+1print(today)# 构造要发送的消息if today in[1,3,5]:#周一、三、五text = {#"content": "这是定时发送的群消息,发送时间:%s" % datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),"content": "呼叫各位将士,今天是周%s,别忘记中午锻炼哦" % today,"mentioned_list": ["@all"]}elif today in [2,4]:#today in[2,4]:#周二、四text = {"content": "呼叫各位将士,今天是周%s,别忘记晚上锻炼哦" % today,"mentioned_list": ["@all"]}data = {"msgtype": "text","text": text}headers = {'Content-Type': 'application/json'}# 发送消息response = requests.post(url=webhook_url, headers=headers, data=json.dumps(data))# 输出结果print(response.text)

第四步:编写shell脚本

名为run.sh,具体内容如下,主要是执行上述python脚本

#!/bin/sh# 记录一下开始时间echo `date` >> /Users/呼啦圈/log &&# 进入helloworld.py程序所在目录cd /Users/呼啦圈 &&# 执行python脚本(注意前面要指定python运行环境/usr/bin/python,根据自己的情况改变)/usr/local/bin/python3.9 demo.py# 运行完成echo 'finish' >> /呼啦圈/log

第五步:编写.plist文件

在~/Library/LaunchAgents目录下创建一个local.demo.plist文件,输入要执行的脚本以及定时发送时间,可以参考如下内容

(~/Library/LaunchAgents: 用户自定义的用户启动项)

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict><!-- Label唯一的标识 --><key>Label</key><string>local.demo.plist</string><!-- 指定要运行的脚本 --><key>ProgramArguments</key><array><string>/Users/呼啦圈/run.sh</string></array><!-- 指定要运行的时间 --><key>StartCalendarInterval</key><dict><key>Minute</key><integer>10</integer><key>Hour</key><integer>10</integer></dict><!-- 标准输出文件 --><key>StandardOutPath</key><string>/Users/呼啦圈/run.log</string><!-- 标准错误输出文件,错误日志 --><key>StandardErrorPath</key><string>/Users/呼啦圈/run.err</string></dict>

第六步:执行命令

launchctl load ~/Library/LaunchAgents/local.demo.plist

如果执行报错,则执行unload,再执行load

#卸载launchctl unload ~/Library/LaunchAgents/local.demo.plist

当到预定的时间点后,企业微信就会受到预设的消息,例如

以实战为线索,逐步深入Jenkins各个环节,由入门到精通,秒级解决工作问题。

如果觉得《【定时器】企业微信群定时发送消息简单实现》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。