有微信通知的定时任务执行器
由bq9dhg5r创建,最终由bq9dhg5r 被浏览 2 用户
定时任务执行器使用说明 📋 项目概述 这是一个基于Python的定时任务调度器,专门用于自动执行股票数据分析脚本(支持.py和.ipynb格式),并在任务执行前后发送微信通知。
✨ 主要功能 定时执行 - 按指定时间自动运行Python脚本和Jupyter Notebook
- 数据就绪检查 - 执行前自动检查数据库中当日数据是否就绪
- 微信通知 - 任务开始、成功、失败都会发送通知
- 错误重试 - 数据未就绪时自动重试
- 超时处理 - 防止任务卡死(默认3小时超时)
🚀 快速开始
- 环境准备 bash
/# 安装依赖包
pip install schedule requests papermill
# 确保Python环境已安装数据分析相关库
# 如:dai (Data AI) 库等
2. 配置修改
2.1 修改微信通知密钥
在代码中找到这行,替换为你的Server酱SCKEY
SCKEY = "SCT298191Tqyj4OAFVp6aWbgqxxxxxxxxx" # ← 替换这里
获取SCKEY的方法:
- 访问 Server酱官网
- 微信扫码登录
- 在"发送消息"页面找到SendKey
2.2 配置你的定时任务
SCHEDULED_TASKS = [
{
"path": "/home/aiuser/work/userlib/板块/行业个股sig和资金流每日推荐.ipynb",
"time": "18:49", # 执行时间(24小时制)
"name": "行业个股sig和资金流每日推荐" # 任务显示名称
},
# 添加更多任务...
]
2.3 添加新任务
# 复制这个格式,添加新任务
{
"path": "你的脚本绝对路径", # 必需:.py或.ipynb文件
"time": "HH:MM", # 必需:执行时间
"name": "任务描述名称" # 必需:用于显示和通知
}
3 运行程序
数据检查机制
检查逻辑
- 任务触发时,首先检查cn_stock_prefactors表中是否有当天的close数据
- 如果数据未就绪,每5分钟重试一次,最多重试12次(1小时)
- 数据就绪后才开始执行脚本
自定义数据检查
如需修改检查逻辑,修改check_today_data_exists()函数:
def check_today_data_exists():
# 修改这里的SQL查询逻辑
sql = f"""
SELECT close, date
FROM cn_stock_prefactors
WHERE date = '{today}'
LIMIT 1
"""
# 或改为其他检查条件
📱 微信通知
通知类型
- ✅ 成功通知:任务执行成功
- ❌ 失败通知:脚本执行失败或错误
- ⏱️ 超时通知:执行超过3小时
- 🔍 数据等待超时:数据1小时后仍未就绪
- ❌ 文件不存在:脚本路径错误
通知示例
✅ 行业个股资金流每日推荐 - 执行成功
耗时: 2分45秒
路径: /home/aiuser/work/userlib/板块/行业个股资金流每日推荐.ipynb
⚙️ 高级配置
修改重试参数
max_retries = 12 # 最大重试次数
retry_interval = 300 # 重试间隔(秒),默认5分钟
修改超时时间
# 在 scheduled_run_script 函数中修改
timeout=10800 # 单位:秒,默认3小时
https://bigquant.com/codesharev3/92fc2add-dc65-4fa7-a982-b9f2af99ced9
\