QMT

QMT里定时任务运行时间操作定时任务的间隔,会怎么样?

代码很简单,就是在run_time这个定期运行的任务里面,定期1秒执行一次任务
 

20240506101947.png



当时任务运行时间超过1秒钟,比如上面的代码里面用time.sleep(3) 模拟这个超时,等待3秒。

在tick 实盘模式下运行,输出什么的?

答案如下:


20240506101516.png



每次的start和end之间间隔了3秒钟,然后下一次的start和上一次start的间隔也是在3秒钟,也就是当然时刻的定时任务没有执行完成,下一个时刻的定时任务不会被执行。

那么有人会要求,不想要被运行时间长的任务阻碍了当前的任务,要怎么操作呢? 最简单的方式,加一个多线程就好了。

稍微改动一下上面的代码:

20240506101043.png



把要执行的任务,写成一个函数,然后使用threading.Thread去执行这个函数, t.star() 就是启动任务。


20240506101030.png



执行结果如上图,每次的start 间隔只有1秒,当时end是要等待3秒之后才打印出来。但end的输出不会阻塞当前的start输出,start稳定地1秒间隔输出一次,end也在当前start的3秒之后打印出来。
 
 

0 个评论

要回复文章请先登录注册