python如何使用BlockingScheduler设置钉钉定时自动工作通知?

需求描述

每周五上午11点,通过钉钉工作通知向特定人员推送特定文本内容,文本内容来自数据库计算。

代码

from apscheduler.schedulers.blocking import BlockingScheduler
from sqlalchemy import create_engine
import requests
import pandas as pd# 获取token
def get_access_token(appkey, appsecret):"""获取access_tokenhttps://open.dingtalk.com/document/orgapp/obtain-orgapp-token:param appkey: 应用的唯一标识key:param appsecret: 应用的密钥:return:{"errcode": 0,"access_token": "xxx","errmsg": "ok","expires_in": 7200}"""url = 'https://oapi.dingtalk.com/gettoken'params = {'appkey': 'xxx','appsecret': 'xxx'}res = requests.get(url, params=params)return res.json()# 发送应用信息
def send_message(access_token, body):"""发送应用消息https://open.dingtalk.com/document/orgapp/asynchronous-sending-of-enterprise-session-messages:param access_token::param body: 消息体:return:{"errcode":0,"task_id":xxx,"request_id":"xxx"}"""url = 'https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2'params = {'access_token': access_token,}res = requests.post(url, params=params, json=body)return res.json()# 配置推送的信息
def get_content_automatic_push_kpis():sql="select XXX from table" # 设置从数据库获取到的需要推送的内容engine_yun=create_engine('xxxx') # 连接数据库df=pd.read_sql(sql,engine_yun)message = ''.join(df['push_content'].to_list()) # 设置推送内容的格式return message# 配置推送的设置
def push_content_automatic_push_kpis():message=get_content_automatic_push_kpis()# 应用的唯一标识keyappkey = 'xxxx' # 找公司钉钉管理员要相关信息# 应用的密钥appsecret = 'xxxx' # 找公司钉钉管理员要相关信息# 发送消息时使用的微应用的AgentIDagent_id = 'xxx' # 找公司钉钉管理员要相关信息,需要配置一个微应用# 接收者的userid列表userid_list = 'xxx,xxx' # 工号,可以输入多个人token = get_access_token(appkey, appsecret)ret = send_message(token['access_token'], {"agent_id": agent_id,"userid_list": userid_list,"msg": {"msgtype": "text","text": {"content": message },},})# 添加定时任务并执行
schedule=BlockingScheduler()
schedule.add_job(func=push_content_automatic_push_kpis # 定时任务的内容,trigger='cron',day_of_week=4,hour='11')
schedule.start()

Mysql数据处理成文本技巧

把查询结果返回为保留换行的文本,要怎么处理?

在MySQL中,CONCAT() 函数用于将两个或多个字符串值连接成一个字符串。默认情况下,这个函数不会识别或保留换行符,因为MySQL中的字符串操作通常不会处理换行符(\n)。

如果你需要在连接的字符串中保留换行符,你可以使用 CONCAT_WS() 函数,它允许你指定一个分隔符,并且会保留分隔符在结果字符串中。例如,如果你想要保留换行符作为分隔符,可以这样做:

SELECT CONCAT_WS('\n', 'First line', 'Second line') AS ConcatenatedText;

这将返回:

ConcatenatedText
-----------------
First line
Second line

请注意,这种方法在处理来自不同列的换行符时可能不适用,因为 CONCAT_WS() 会将分隔符放在每个字符串之间,即使它们本身不包含换行符。

如果你需要从不同列中连接字符串并保留换行符,你可能需要使用 GROUP_CONCAT() 函数,它允许你指定一个分隔符,并且可以用于连接来自查询的多行的结果。例如:

SELECT GROUP_CONCAT(column1 SEPARATOR '\n') AS ConcatenatedText
FROM your_table;

这将把 your_table 中的 column1 的值连接成一个字符串,每个值之间用换行符分隔。

代码文档管理(忽略)

1. 确定python代码本地文件命名:主题-作用渠道-内容-相关主表;在python代码文件开头写上代码作用、推送时间、推送人、Linux任务命名

2. 在定时任务管理文档中,把定时任务的相关信息做好记录;

3. 需求文件撰写归档,并配置上线后监控任务,如果后续代码出现问题或者迭代,需要记录到此任务文档中汇总;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/9682.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中信证券:量子产业蓄势待发,看好相关投资机会!

在1994年,数学家彼得肖尔(Peter Shor)首次提出了现在广为人知的肖尔算法,那时许多人认为量子计算机的概念遥不可及、纯属幻想。然而,到了2024年,全球正深入探讨量子科技在现实世界的应用,以及所…

K8S中的弹性云服务如何搭建,可能遇到的问题,如何解决!(稳啦!!!!全都稳啦!!!)

首先我们先来了解一下这玩意儿~~~ 啥是弹性云服务(Elastic Cloud Service)???? 弹性云服务(ECS)是一种基于云计算技术的虚拟服务器,由vCPU、内存、磁盘等组成的获取方便…

pytorch技术栈

张量(Tensors):PyTorch的核心数据结构,用于存储和操作多维数组。 自动微分(Autograd):PyTorch的自动微分引擎,可以自动计算梯度,这对于训练神经网络至关重要。 数据加载…

Git 如何管理标签命令(tag)

1.查看本地仓库tag --1.查看本地仓库tag UserDESKTOP-2NRT2ST MINGW64 /e/GITROOT/STARiBOSS/STARiBOSS-5GCA (gw_frontend_master) $ git tag 1stBossUpgrade V10.0.1_20220224_test V10.0.1_20220301_test tag-gwfrontend-V1.0.12-230625 tag-gw_frontend-23.08.29 tag-gw_f…

45.乐理基础-音符的组合方式-复附点

复附点: 复附点顾名思义就是两个附点 复附点表示的音符,有多少拍?下面拿 复附点四分音符举例,可以把整个音符看成三部分,第一部分是原本的四分音符,第二部分是第一个附点,第三部分是第二个附点&…

ANTLR的学习笔记

ANTLR(Another Tool for Language Recognition)是一款强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件。它广泛用于构建编程语言、工具和框架。ANTLR由Terence Parr教授开发,是自由和开源的软件&#xff0c…

vue cmd执行报错 ‘vue‘ 不是内部或外部命令

使用vue脚手架快速搭建项目,在cmd中执行:vue init webpack vue-demo,报错: vue 不是内部或外部命令,也不是可运行的程序 或批处理文件。 解决方法,执行如下的命令 npm config list 注意:找到prefix等号后…

python之并发编程

python之并发编程 线程的创建方式线程的创建方式(方法包装)线程的创建方式(类包装)join()【让主线程等待子线程结束】守护线程【主线程结束,子线程就结束】 锁多线程操作同一个对象(未使用线程同步)多线程操作同一个对象(增加互斥锁,使用线程同步)死锁案…

ChatGLM 本地部署指南(问题解决)

硬件要求(模型推理): INT4 : RTX3090*1,显存24GB,内存32GB,系统盘200GB 如果你没有 GPU 硬件的话,也可以在 CPU 上进行推理,但是推理速度会更慢。 模型微调硬件要求更高。…

稀疏检索和密集检索概念

在数据处理和搜索领域,“稀疏检索”(Sparse Retrieval)和"密集检索"(Dense Retrieval)是两种常见的信息检索技术,特别是在处理大规模数据集时,如文本、图像等。这两种技术各有特点&am…

【双碳系列】碳中和、碳排放、温室气体、弹手指、碳储量、碳循环及leap、cge、dice、openLCA模型

气候变化是当前人类生存和发展所面临的共同挑战,受到世界各国人民和政府的高度关注 ①“双碳”目标下资源环境中的可计算一般均衡(CGE)模型实践技术应用 可计算一般均衡模型(CGE模型)由于其能够模拟宏观经济系统运行…

在论文写作中使用 LaTeX 生成算法伪代码

最近在论文写作中,我需要表示算法的逻辑。由于 Word 没有较好的模板,因此我选择使用 LaTeX 来生成算法伪代码,然后将其截图或转换为 SVG 格式,贴入论文中。 关于 LaTeX 的伪代码写作技巧,可以参考这篇文章&#xff1a…

OpenBayes 一周速览|Apple 开源大模型 OpenELM 上线;字节发布 COCONut 首个全景图像分割数据集,入选 CVPR2024

公共资源速递 This Weekly Snapshots ! 5 个数据集: * COCONut 大规模图像分割数据集 * THUCNews 新闻数据集 * DuConv 对话数据集 * 安徽电信知道问答数据集 * Sentiment Analysis 中文情感分析数据集 2 个模型: * OpenELM-3B-Inst…

前端组件库图片上传时候做自定义裁剪操作

不论是vue还是react项目,我们在使用antd组件库做上传图片的时候,有一个上传图片裁剪的功能,但是这个功能默认是只支持1:1的裁剪操作,如何做到自定义的裁剪操作?比如显示宽高比?是否可以缩放和旋转操作&…

Docker容器目录挂载到主机

文章目录 一、MySQL二、Redis三、Minio四、PostgreSQL五、MongoDB六、Elasticsearch七、Nginx八、RabbitMQ九、Cassandra十、WordPress总结 提示:以下是本篇文章正文内容,下面案例可供参考 一、MySQL 在这个例子中,/my/own/datadir 是你的主…

【Redis】RDB持久化和AOF 持久化

分布式缓存 单点 Redis 的问题 数据丢失(持久化)并发能力不如集群(主从集群、读写分离)Redis宕机导致服务不可用(Redis哨兵)存储能力差(分片集群) Redis 持久化 RDB 持久化 什么…

程序链接和运行 - 笔记

1 linux下程序a连接b.so后,运行时如何找到调用的函数 在Linux下,当程序A连接了动态链接库B(.so文件)后,在运行时,程序A会使用动态链接器(dynamic linker)来解析并加载动态链接库B中的函数。动态链接器会在系统中搜索动态链接库,并将它们加载到程序的地址空间中。 当…

力扣hot100:199. 二叉树的右视图/437. 路径总和 III(dfs/回溯/树上前缀和/哈希表)

文章目录 一、LeetCode:199. 二叉树的右视图二、LeetCode:437. 路径总和 III 一、LeetCode:199. 二叉树的右视图 LeetCode:199. 二叉树的右视图 差点因为是个中等题打退堂鼓。其实比较简单。 右视图实际上只需要找到&#xff0c…

python自动化生成ppt

使用Python和python-pptx创建PPT 在这篇博客中,我们将探讨如何使用Python库python-pptx来创建一个简单的PowerPoint演示文稿(PPT)。这个库允许我们以编程方式创建幻灯片、添加文本、图片、表格和自定义形状。 安装python-pptx 首先&#x…

Relaxed MemoryConsistency

SC和TSO都被称之为强(strong)保序模型; because the global memory order of each model usually respects (preserves) per-thread program order;回想一下,对于load和store的所有四种组合(Load -> Lo…