ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

50岁学习python-量化交易第18天:实现定时任务

50岁学习python-量化交易第18天:实现定时任务 # 免责声明 # 本系列文章记录投资者对计算机程序化交易的理解和学习 # 所涉及的软件及文章内容包含但不限于此不构成投资建议不管是进行炒股操作, 还是运用计算机来办公, 定时任务都是极为重要的, 它能够助力我们从那些繁重的工作里解脱出来。达成这一功能同样存在着诸多模块功能, 在这里着重学习以下这两个。一、循环 sleep它属于Time模块之下的一个函数, 于循环当中放置要去执行的任务, 也就是阅读条件预警输出的数据, 接着在sleep一段时长之后再去进行执行。from datetime import datetime import time # 每n秒执行一次 def timer(n): while True: con open(rD:\r_xlm\条件预警.txt) line con.read() print(datetime.now().strftime(%Y-%m-%d %H:%M:%S)) print(line.strip()) time.sleep(n) timer(1) # 1秒这种方式是最为简单的, 然而呢, 它仅仅能够去执行那种有着固定时间的任务, 要是存在定时任务, 或者任务数量比较多的情况下, 那它就是没办法完成的了。二、定时框架它属于一个定时任务框架, 在使用之际极为便利, 它呈现出基于日期的任务, 还有固定时间间隔的任务以及特定类型的任务, 并且能够将任务进行持久化处理, 还能够以某种特定方式去运行应用。使用 需要安装pip install apscheduler四个组件四个组件分别为触发器()作业存储(job store)执行器()调度器()。触发器()里面含有调度逻辑, 每一个作业都存在其自身的触发器, 该触发器是用来判定接下来哪一个作业将会运行的。除开它们自身的初始配置之外, 触发器全然是没有状态的。有三种内建的 :date: 特定的时间点触发: 固定时间间隔触发cron: 在特定时间周期性地触发作业存储(job store)将被调度的作业进行存储, 默认的作业存储方式是, 简单地把作业留存于内存里, 而其他的作业存储方式则是, 把作业存放于数据库中。当一个作业的数据在保存在持久化作业存储时会被序列化, 并且在加载的时候, 会被反序列化。调度器是不能够分享同一个作业存储的。默认使用可以修改使用 DB 存储方案执行器()他们处理作业运行, 通常是把指定的可调用对象提交到一个线程或者进程池里, 在作业中进行。当作业完成时, 执行器会通知调度器。最常用的 有两种调度器()一般而言, 于应用里往往仅有一个调度器, 应用的开发者一般不会直接去处理作业存储、调度器以及触发器, 相反地, 调度器提供了用来处理这些的恰当的接口。配置作业存储以及执行器能够在调度器之中完成, 比如添加作业、修改作业以及移除作业。
返回列表