from datetime import datetime
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.schedulers.blocking import BlockingScheduler

import subprocess,sys
import os
import datetime

IS_WIN32 = 'win32' in str(sys.platform).lower()

def alarm(type):
    print("starting test")
    Bat()
    print("end test")

def Bat():
    cmd = 'sam.bat'#脚本  命令
    if IS_WIN32:
        startupinfo = subprocess.STARTUPINFO()
        startupinfo.dwFlags = subprocess.CREATE_NEW_CONSOLE | subprocess.STARTF_USESHOWWINDOW
        startupinfo.wShowWindow = subprocess.SW_HIDE
        p = subprocess.Popen(cmd, startupinfo = startupinfo)
        curline = p.stdout.readline()#命令执行返回输出
        while(curline != b''):
            strLine = str(curline, encoding="utf-8")
            print("%s"%(strLine))
            curline = p.stdout.readline()
        p.wait()
        print("%s  -- end..... %s "%(datetime.datetime.now().time(), p.returncode))

# 循环执行
# Schedule job_function to be called every 1 hours
def interval_trigger():
    print("%s  -- after wait  %s to  start.."%(datetime.datetime.now().time(), "2.10 hour"))
    global SCHEDULER
    SCHEDULER.add_job(func=alarm, args=['interval'], trigger='interval', hours=2, minutes=10, id='interval_job')


SCHEDULER=BlockingScheduler(timezone='Asia/Shanghai')
## 后台
##SCHEDULER = BackgroundScheduler(timezone='Asia/Shanghai')

if __name__ == '__main__':
    interval_trigger()

    try:
        SCHEDULER.start()
    except (KeyboardInterrupt, SystemExit):
        SCHEDULER.shutdown()

  

posted on 2021-12-23 11:01  Old-Kang  阅读(102)  评论(0编辑  收藏  举报