main 程序添加启动调度器
This commit is contained in:
20
README.md
20
README.md
@@ -512,9 +512,9 @@ root 17 11 0 15:15 pts/1 00:00:00 ps -ef
|
|||||||
|
|
||||||
### 修改代码进行临时测试
|
### 修改代码进行临时测试
|
||||||
|
|
||||||
- 修改 config.yaml 文件
|
- 修改 ==config.yaml== 文件
|
||||||
- ==snapshot_retention_days: 0== :定义删除多少天前的快照
|
- `snapshot_retention_days: 0` :定义删除多少天前的快照
|
||||||
- ==schedule==:schedule 自定义改参数下定义的时间
|
- `schedule`:自定义改参数下的时间
|
||||||
|
|
||||||
|
|
||||||
``` yaml
|
``` yaml
|
||||||
@@ -536,15 +536,15 @@ global:
|
|||||||
# 定时任务配置
|
# 定时任务配置
|
||||||
schedule:
|
schedule:
|
||||||
export: # 导出 Excel 和 Yaml 文件的时间
|
export: # 导出 Excel 和 Yaml 文件的时间
|
||||||
day_of_week: 'sat' # 星期几:mon,tue,wed,thu,fri,sat,sun
|
day_of_week: 'sun' # 星期几:mon,tue,wed,thu,fri,sat,sun
|
||||||
hour: 6 # 小时 (0-23)
|
hour: 15 # 小时 (0-23)
|
||||||
minute: 0 # 分钟 (0-59)
|
minute: 35 # 分钟 (0-59)
|
||||||
second: 0 # 秒 (可选)
|
second: 0 # 秒 (可选)
|
||||||
|
|
||||||
delete: # 删除快照的时间
|
delete: # 删除快照的时间
|
||||||
day_of_week: 'sat'
|
day_of_week: 'sun'
|
||||||
hour: 19
|
hour: 15
|
||||||
minute: 0
|
minute: 40
|
||||||
second: 0
|
second: 0
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
@@ -567,7 +567,7 @@ EOF
|
|||||||
|
|
||||||
#### 进入容器测试
|
#### 进入容器测试
|
||||||
|
|
||||||
手动执行 ==main.py== 运行
|
手动执行 `main.py` 运行
|
||||||
|
|
||||||
``` shell
|
``` shell
|
||||||
[junlan@localhost removeweeklysnapshot]$ sudo docker exec -it removeweeklysnapshot bash
|
[junlan@localhost removeweeklysnapshot]$ sudo docker exec -it removeweeklysnapshot bash
|
||||||
|
|||||||
39
main.py
39
main.py
@@ -32,22 +32,49 @@ def delete_old_snapshots():
|
|||||||
|
|
||||||
def main():
|
def main():
|
||||||
"""主执行函数"""
|
"""主执行函数"""
|
||||||
export_conf = SCHEDULE_EXPORT # 从配置读取导出任务时间
|
export_conf = SCHEDULE_EXPORT # 从配置读取导出任务时间
|
||||||
delete_conf = SCHEDULE_DELETE # 从配置读取删除任务时间
|
delete_conf = SCHEDULE_DELETE # 从配置读取删除任务时间
|
||||||
|
|
||||||
scheduler = BackgroundScheduler() # 设置定时任务调度器
|
scheduler = BackgroundScheduler() # 创建调度器
|
||||||
scheduler.start() # 开始调度器
|
|
||||||
|
|
||||||
logger.info(f"✓ 导出任务已设置: 每周 {export_conf['day_of_week']} {export_conf['hour']:02d}:{export_conf['minute']:02d}") # :02d 数字格式化选项,用于让数字显示为至少2位,不足补零。
|
# 1. 添加导出数据任务
|
||||||
|
scheduler.add_job(export_files, # 要执行的函数
|
||||||
|
'cron', # 触发器类型
|
||||||
|
day_of_week=export_conf['day_of_week'],
|
||||||
|
hour=export_conf['hour'],
|
||||||
|
minute=export_conf['minute'],
|
||||||
|
second=export_conf.get('second', 0),
|
||||||
|
id='export_files', # 任务唯一ID
|
||||||
|
name='导出Excel和YAML' # 任务名称
|
||||||
|
)
|
||||||
|
logger.info(f"✓ 导出任务已设置: 每周 {export_conf['day_of_week']} {export_conf['hour']:02d}:{export_conf['minute']:02d}")
|
||||||
|
|
||||||
|
# 2. 添加删除任务
|
||||||
|
scheduler.add_job(
|
||||||
|
delete_old_snapshots, # 要执行的函数
|
||||||
|
'cron',
|
||||||
|
day_of_week=delete_conf['day_of_week'],
|
||||||
|
hour=delete_conf['hour'],
|
||||||
|
minute=delete_conf['minute'],
|
||||||
|
second=delete_conf.get('second', 0),
|
||||||
|
id='delete_snapshots',
|
||||||
|
name='删除旧快照'
|
||||||
|
)
|
||||||
logger.info(f"✓ 删除任务已设置: 每周 {delete_conf['day_of_week']} {delete_conf['hour']:02d}:{delete_conf['minute']:02d}")
|
logger.info(f"✓ 删除任务已设置: 每周 {delete_conf['day_of_week']} {delete_conf['hour']:02d}:{delete_conf['minute']:02d}")
|
||||||
|
|
||||||
|
# 启动调度器
|
||||||
|
scheduler.start()
|
||||||
|
logger.info("调度器已启动,等待执行任务...")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# 保持主程序运行,以便调度器能正常工作
|
# 保持主程序运行
|
||||||
while True:
|
while True:
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
|
|
||||||
except (KeyboardInterrupt, SystemExit):
|
except (KeyboardInterrupt, SystemExit):
|
||||||
|
logger.info("正在关闭调度器...")
|
||||||
scheduler.shutdown()
|
scheduler.shutdown()
|
||||||
|
logger.info("调度器已关闭")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
Reference in New Issue
Block a user