PYTHON SCHEDULER

  • scheduler简介
  • 参考连接
  • 安装
  • 基本概念介绍
  • 项目实例
  • interval 触发器

scheduler简介

scheduler提供了基于日期、固定时间间隔以及crontab 类型的任务;
我们可以在主程序的运行过程中快速增加新作业或删除旧作业;
如果把作业存储在数据库中,那么作业的状态会被保存,当调度器重启时,不必重新添加作业,作业会恢复原状态继续执行。

参考连接

参考连接一
参考连接二
apscheduler两种调度器BackgroundScheduler和BlockingScheduler的区别

获得任务列表:get_jobs

安装

pip install apscheduler

基本概念介绍

触发器:调度逻辑,描述作业何时被触发,按照【日期date】,【时间间隔interval】,【固定时间点cron】触发作业。
存储器:默认情况下,任务存放在内存中。也可以配置存放在不同类型的数据库中。
如果任务存放在数据库中,那么任务的存取有一个序列化和反序列化的过程,同时修改和搜索任务的功能也是由任务储存器实现。
执行器:将指定job放到线程池或者进程池中执行,执行完后通知调度器。
调度器:用户操作调度器,调度器控制触发器,存储器,执行器。用户不接触存储器,执行器,调度器。

项目实例

# 定时器
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers.interval import IntervalTrigger
def jobs():print(1)import datetime# 初始化文件读取器
Logging.log_info_print('程序启动')
config_init = configparser.ConfigParser()
path = os.path.dirname(os.path.abspath(__file__))  # gd
# path = os.path.split(os.path.realpath(__file__))[0]
Logging.log_info_print('配置文件路径为:' + path)
config_init.read(os.path.join(path, 'config/config.ini'), encoding='utf-8-sig')# 盘中-读取定时器配置
start_date = datetime.datetime.now().strftime('%Y-%m-%d') + " " + config_init.get("Board_event", "start_date")
end_date = datetime.datetime.now().strftime('%Y-%m-%d') + " " + config_init.get("Board_event", "end_date")
intervals = config_init.get("Board_event", "intervals")# 盘后-读取定时器配置
run_date_after = datetime.datetime.now().strftime('%Y-%m-%d') + " " + config_init.get("Board_after", "run_date")# 交易日设置
tradingDay = config_init.get("TradingDay", "tradingDay")
if tradingDay == "":tradingDay = datetime.datetime.now().strftime('%Y%m%d')# 创建定时调度器
sched = BackgroundScheduler()# 时间间隔
interval_trigger = IntervalTrigger(seconds=int(intervals), start_date=start_date, end_date=end_date)# 任务函数
def job_board():print('盘中')# 引用全局变量global is_run_boardglobal calc_engine_objectif is_run_board == False:is_run_board = Truetry:calc_engine_object = EquityProfitCalc(oracle_risk, oracle_O32, stockinfo_table, schema, stock4re_view,tradingDay)Logging.log_info_print('盘中数据初始化成功')except Exception as ex:logging.error('盘中数据初始化错误,程序停止')sys.exit()# 调用方法,目的是解决调度器的线程问题
def jobs():job_board()# 期权保证金job_optionmargin()sched.add_job(jobs, interval_trigger, id='jobs')
sched.start()
#############################################################################

interval 触发器

参数 说明
weeks (int) 间隔几周
days (int) 间隔几天
hours (int) 间隔几小时
minutes (int) 间隔几分钟
seconds (int) 间隔多少秒
start_date (datetime 或 str) 开始日期
end_date (datetime 或 str) 结束日期
timezone (datetime.tzinfo 或str) 时区每隔两分钟执行一次 job_func 方法
scheduler .add_job(job_func, 'interval', minutes=2)在 2017-12-13 14:00:01 ~ 2017-12-13 14:00:10 之间, 每隔两分钟执行一次 job_func 方法
scheduler .add_job(job_func, 'interval', minutes=2, start_date='2017-12-13 14:00:01' , end_date='2017-12-13 14:00:10')cron 触发器:
参数 说明
year (int 或 str) 年,4位数字
month (int 或 str) 月 (范围1-12)
day (int 或 str) 日 (范围1-31
week (int 或 str) 周 (范围1-53)
day_of_week (int 或 str) 周内第几天或者星期几 (范围0-6 或者 mon,tue,wed,thu,fri,sat,sun)
hour (int 或 str) 时 (范围0-23)
minute (int 或 str) 分 (范围0-59)
second (int 或 str) 秒 (范围0-59)
start_date (datetime 或 str) 最早开始日期(包含)
end_date (datetime 或 str) 最晚结束时间(包含)
timezone (datetime.tzinfo 或str) 指定时区在每年 1-3、7-9 月份中的每个星期一、二中的 00:00, 01:00, 02:00 和 03:00 执行 job_func 任务
scheduler .add_job(job_func, 'cron', month='1-3,7-9',day='0, tue', hour='0-3')

python scheduler相关推荐

  1. python scheduler 定时执行_python使用apscheduler做定时任务的管理

    工作中经常需要做一些定时任务,之前基本都是用crontab来定时执行脚本,python也有一个apscheduler方便进行定时任务的管理,所以我简单学习了下apscheduler的使用. Block ...

  2. python scheduler cron_Python轻量级定时任务调度框架“APScheduler”

    APScheduler是Python的一个定时任务框架,用于执行周期或者定时任务,可以基于日期.时间间隔,及类似于云服务器Linux系统上的定时任务crontab类型的定时任务:该框架不仅可以添加.删 ...

  3. python利器怎么编程-Python任务调度利器之APScheduler详解

    任务调度应用场景 所谓的任务调度是指安排任务的执行计划,即何时执行,怎么执行等.在现实项目中经常出现它们的身影:特别是数据类项目,比如实时统计每5分钟网站的访问量,就需要每5分钟定时从日志数据分析访问 ...

  4. python任务调度框架_Python任务调度模块APScheduler

    一.APScheduler 是什么&APScheduler四种组成部分? APScheduler全程为Advanced Python Scheduler,是一款轻量级的Python任务调度框架 ...

  5. APScheduler —— Python化的Cron

    APScheduler全程为Advanced Python Scheduler,是一款轻量级的Python任务调度框架.它允许你像Cron那样安排定期执行的任务,并且支持Python函数或任意可调用的 ...

  6. 【Python】SQLAlchemy长时间未请求,数据库连接断开的原因、解决方案

    这个问题好像和长时间连接数据库但不打开网页时,报错lost connection是一个原因 问题: 写了一个基于apscheduler的定时任务,里面的任务使用了sqlalchemy,大致如下: sc ...

  7. python 第三方模块之 APScheduler - 定时任务

    介绍 APScheduler的全称是Advanced Python Scheduler.它是一个轻量级的 Python 定时任务调度框架.APScheduler 支持三种调度任务:固定时间间隔,固定时 ...

  8. python 定时任务 Apscheduler

    官网地址 讲解1 讲解2 1 简介 APScheduler的全称是Advanced Python Scheduler.它是一个轻量级的 Python 定时任务调度框架.APScheduler 支持三种 ...

  9. python apscheduler 动态_基于Flask-APScheduler实现添加动态定时任务

    阅读目录 一.apSheduler 二.Flask-APScheduler 三.动态定时任务 四.uwsgi部署注意事项 一.apSheduler 第一部分内容限于apSheduler3.0以下版本, ...

最新文章

  1. discuz,ecshop的伪静态规则(apache+nginx)
  2. javaScript年份下拉列表框内容为当前年份及前后50年
  3. mysql 断电 启动不了 start: Job failed to start
  4. 关于yum安装后提示There are no enabled repos Run yum repolist all..的问题解决
  5. GPU与CPU版本的矩阵乘法对比
  6. 机器学习入门------pandas
  7. 非线性回归模型(part2)--支持向量机
  8. SSH 默认端口配置
  9. Atitit. 构造ast 语法树的总结attilax v2 q0f
  10. java入门书籍《java语言程序设计 基础篇》原书第10版 强烈推荐
  11. Ubuntu安装MDK5
  12. Spring Bean生命周期:属性赋值阶段
  13. SQOOP的安装配置_Linux伊甸园开源社区-24小时滚动更新开源资讯,全年无休!
  14. 网络常用端口号(全)
  15. java截取视频的帧
  16. oracle同义词性能,ORACLE同义词总结 - welcome to open life - OSCHINA - 中文开源技术交流社区...
  17. mhl数据线_mhl接口有什么作用
  18. HTAP混合事务/分析数据库调研
  19. TDSQL-C PostgreSQL(CynosDB) 内核解密-披荆斩棘,勇往直前的腾讯云数据库
  20. 我的世界四大微软签约服务器,一年吸纳1.5亿用户,《我的世界》宣布开启“阴阳师”等四大IP联动 - 全文...

热门文章

  1. 关于CSS中position属性和overflow属性的使用小结
  2. Android自定义A_Z字母排序ListView,悬停Listview
  3. 怀念有时间写博客的日子
  4. 同济大学博士/硕士学位论文LaTex模板的软件安装与环境配置
  5. 设置更改文件编码格式
  6. java强制类型转换之Sting类型转换成int类型
  7. 11.6.1:综合技巧练习 - 配置和测试网络
  8. 工作一年半个人思考和总结
  9. toString()方法作用
  10. Java static与final使用陷阱