QMT schedule_run 定时器
手册全文:QMT API
ContextInfo.schedule_run - 设置定时器
说明
- 该函数是新版设置定时器函数,相比旧版
run_time,新版schedule_run新增了任务分组,任务取消等多种功能
原型:
python
ContextInfo.schedule_run(
func:Callable, # 回调函数,到达定时器预定时间时触发调用,参数为ContextInfo类型,无需返回值
time_point:Union[dt.datetime,str], # 表示预定的第一次触发时间,如果设置定时器时已经过了预定时间,会立即执行func以及后续逻辑;当使用str类型时,格式为'yyyymmddHHMMSS'如'20231231235959',需要满足转换dt.datetime.strptime('20231231235959','%Y%m%d%H%M%S')
repeat_times:int=0, # 表示在预定时间触发后按interval间隔再触发多少次
interval:datetime.timedelta=None, # 表示预定时间触发后的后续重复执行的时间间隔
name:str='' # 定时器任务组名,可用于定时器分组,多次设置同名定时任务不会互相覆盖,会计入同一个任务组,按任务组名取消时会全部取消
)参数:
| 名称 | 类型 | 描述 |
|---|---|---|
func | Callable | 回调函数,到达定时器预定时间时触发调用,参数为ContextInfo类型,无需返回值,定义示例如下: / def on_timer(C:ContextInfo): pass |
time_point | Union[datetime.datetime,str] | 表示预定的第一次触发时间,如果设置定时器时已经过了预定时间,会立即执行func以及后续逻辑; / 当使用str类型时,格式为'yyyymmddHHMMSS'如'20231231235959',需要满足转换datetime.datetime.strptime('20231231235959','%Y%m%d%H%M%S') |
repeat_times | int | 表示在预定时间触发后按interval间隔再触发多少次,传-1表示不限制次数 |
interval | datetime.timedelta | 表示预定时间触发后的后续重复执行的时间间隔 |
name | str | 定时器任务组名,可用于定时器分组,多次设置同名定时任务不会互相覆盖,会计入同一个任务组,按任务组名取消时会全部取消 |
回调函数参数: ContextInfo:策略模型全局对象
返回值:
int类型,表示本次调用后生成的定时任务号,可用于取消本次定时任务,全局唯一不重复
示例:
python
import datetime as dt
def on_timer(C:ContextInfo):
print('hello world')
def init(ContextInfo):
tid=ContextInfo.schedule_run(on_timer,'20231231235959',-1,dt.timedelta(minutes=1),'my_timer')
def handlebar(ContextInfo):
pass
#此例为自2023-12-31 23:59:59后每60s运行一次on_timer开通 / 代写:关注公众号 Kimi量化
