关于python在使用PySimpleGUI中 利用 多线程threading、apscheduler 多定时任务
自己在做一个小软件时,自己自己设计了一个 定时查看某些数据文件的Gui,需要定时的执行某个任务还 不针具界面的使用,所以想到了,多线程来执行这个定时任务
需要 用到的 库:
from apscheduler.schedulers.blocking import BlockingScheduler
import PySimpleGUI as sg
import threading
关于apscheduler的使用 可参考下篇 我个人感觉比较详细简单
https://www.cnblogs.com/leffss/p/11912364.html
首先实例化定时任务
Blocking=BlockingScheduler()
在需要开始自动定时开始
#记录是否开始执行监控任务
dingshiToTF=False
#执行任务
def zhixing():
#执行定时任务
Blocking.start()
def task(FilePath):
#添加任务到定时程序里
Blocking.add_job(time_zhandiamdata,args=[zd_dict,FilePath],trigger='cron',minute='*/5')#,hour=(0-23),minute=(20)
#定义全部变量的 线程对象
global threading_1
#添加定时任务到线程里
threading_1 =threading.Thread(target=zhixing,daemon=True)
1.定义一个定时任务 开始执行的方法
2.定义一个方法函数
把定时任务的函数名添加到定时对象里
3.把执行任务的方法添加到线程任务里面
Blocking.add_job(任务函数名,args=参数类(如果只有一个参数后面记得加一个逗号),trigger='cron',minute='*/5')
#其他参数,参考上面引用的文章
4.我需要的是 看定时任务开始了没有
#判断是否开始运行
if dingshiToTF != True:
#如果还没开始执行 就直接 执行多线程任务
if threading_1.isAlive()==False:
#多线程开始执行定时任务
hreading_1.start()
#标记线程开始
dingshiToTF =True
而后就执行了
def zhixing():
#执行定时任务
Blocking.start()
#定时任务就开始执行
写的有点乱