# SchedulerView **Repository Path**: TOTOROQwQ/scheduler-view ## Basic Information - **Project Name**: SchedulerView - **Description**: 基于python的apscheduler框架,flask框架的flask-admin, modelview 和数据库sqlite搭建的一个定时任务动态管理。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2022-04-29 - **Last Updated**: 2023-07-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README **动态管理定时任务的一个可拓展完整demo** 该项目基于以下技术: apscheduler定时任务框架设置定时任务。 flask提供后台服务。 sqlite提供定时任务的数据存储。 flask-admin的modelview提供sqlite数据操作的网页映射。 ### 项目效果 支持对任意(可限制或指定)任务的增删改,并实时更新后台的定时任务 ![](./image/page.png) ### 项目介绍 #### 项目实现思路 apscheduler定时任务框架本身可以持久化存储到数据库。 但是只有id,next_run_time,data三个字段,没办法直接去管理这个数据。 所以建立一个定时任务信息表和任务表关联起来,通过操作信息表的内容来操作任务表。 前端用modelview映射,实现外部对信息表的操作。 实现modelview的after_model_change,after_model_delete方法来实时更新任务。 #### 定时任务信息表 字段|解释 --|-- name|任务名称,和apscheduler的任务id保持一致 description|任务描述,用户自定义内容 task|任务方法,方法需要提前定义到JOB_CONTENT(作业库)类 args|任务参数,逗号分隔 kwargs|任务参数,逗号分隔 trigger_type|触发器类型interval/cron/date trigger_args|触发器实际参数,界面未显示 trigger_args_simple|触发器参数,界面显示,用户可修改的。后台将其转化成trigger_args is_active|是否启用 create_time|创建时间 update_time|更新时间 stack_info|堆栈信息,暂未适配 #### 使用要点 ##### 1. 任务名称唯一 ##### 2. 任务需要先定义在代码中 ##### 3. 同一时间,最多只有10个任务运行,注意错开时间配置 ##### 4. 任务参数可以填在`参数`或`关键字参数`里面,格式分别是`a,b`/`arg1 = a,arg2 = b` ##### 5. 触发器类型有cron,interval(间隔),datetime(定时,一次性)参数格式同关键字参数,参数内容如下 cron参数|说明 --|-- ss|秒,a/b格式表示每b秒中的第a秒执行 mm|分钟 hh|小时 dd|天 MM|月 ww|星期 yy|年 day_of_week|[0,6]一个星期里面哪几天执行 interval参数|说明 --|-- seconds|秒 minutes|分钟 hours|小时 days|天 weeks|星期 start_date|开始日期 end_date|结束日期 date参数|说明 --|-- date_time|字符串格式日期,一次性