def runCase(ismail): conf = configerData.configerData() runcase = conf.getItemData("configerinfor","runcase").split(",") environment = conf.getItemData("configerinfor","eviorment") scheduleList = [] for i in runcase: if(i!=""): scheduleList.append(int(i)) print scheduleList schedulePList = getbatchrunList(scheduleList) print schedulePList reportName = u"定时接口批量执行报告" starttime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) isreport = conf.getItemData("configerinfor", "isreport") batchResult = batchstart.start_main(schedulePList,environment,isreport,"") successNum = batchResult["sNum"] faileNum = batchResult["fNum"] errorNum = batchResult["eNum"] totalNum = successNum+faileNum+errorNum if(isreport=='Y'): reportPath = "\\"+batchResult["reportPath"] print reportPath exeuser = "" endtime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) print reportName,starttime,endtime,totalNum,successNum,faileNum,errorNum,exeuser,reportPath sql = "insert into main_reports(report_runName,startTime,endTime,totalNum,successNum,failNum,errorNum,executor,environment,report_localName)" \ "values ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')"%(reportName,starttime,endtime,totalNum,successNum,faileNum,errorNum,exeuser,environment,reportPath) mulSQL.mulSql().insertData(sql) else: pass if(ismail=="Y"): getEamilData(isreport,successNum,faileNum,errorNum)
def getCofigerData(): conf = configerData.configerData() isreport = conf.getItemData("configerinfor","isreport") ismail = conf.getItemData("configerinfor","ismail") sechdel_time = conf.getItemData("configerinfor", "sechdel_time") everyRounder = sechdel_time.split("&")[0] localTime = sechdel_time.split("&")[1] print isreport,ismail return isreport,ismail,everyRounder,localTime
def getEamilData(isreport,successNum,faileNum,errorNum): conf = configerData.configerData() senderlist = conf.getItemData("configerinfor", "senderlist").split(",") senderList = [] for i in senderlist: if (i != ""): senderList.append(i) print senderList subject = '定时接口运行报告' content = '接口运行详情见附件' mailsender = sendmail_exchange.MailSender() if isreport=="Y": sql = "select report_localName from main_reports where id=(select MAX(id) from main_reports )" reportname = mulSQL.mulSql().selectData(sql) print str(reportname[0]) reportpath = os.path.dirname(os.path.dirname(__file__)) + "\\report\\"+ str(reportname[0]) else: reportpath="" mailsender.sendMail(senderList, subject, content,True, reportpath,successNum,faileNum,errorNum,'normal')
evirment = i["evirment"] reporter = i["reporter"] everyRounder = i["timeDay"] localTime = str(i["timeTime"]) if everyRounder == "每天": schedule.every().day.at(localTime).do(self.runschedule, batchrun_list, evirment, projectname, reporter) elif everyRounder == "每周": schedule.every().monday.at(localTime).do(self.runschedule, batchrun_list, evirment, projectname, reporter) elif everyRounder == "每月": schedule.every(28).to(31).at(localTime).do(self.runschedule, batchrun_list, evirment, projectname, reporter) if __name__ == '__main__': runcase = runProSchdeule() runcase.run_task() while True: flag1 = configerData.configerData().getItemData("scheduleChanged", "projectflag") flag2 = configerData.configerData().getItemData("scheduleChanged", "caseflag") #print flag if flag1 == "true" or flag2=="true": for j in schedule.jobs: schedule.cancel_job(j) runcase.run_task() configerData.configerData().setData("scheduleChanged", "projectflag", "false") configerData.configerData().setData("scheduleChanged", "caseflag", "false") #print schedule.jobs else: #print schedule.jobs pass schedule.run_pending()
def job2_task(ismail): threading.Thread(target=runCase, args=(ismail,)).start() def runSchedule(): schedule.every(10).seconds.do(job1_task) #schedule.every(3).minutes.do(job1_task) isreport, ismail,everyRounder,localTime = getCofigerData() if everyRounder =="每天": schedule.every().day.at(localTime).do(job2_task,ismail) elif everyRounder =="每周": schedule.every().monday.at(localTime).do(job2_task,ismail) elif everyRounder =="每月": schedule.every(28).to(31).at(localTime).do(job2_task,ismail) if __name__ == '__main__': runSchedule() while True: flag = configerData.configerData().getItemData("scheduleChanged", "caseflag") if flag == "true": for j in schedule.jobs: schedule.cancel_job(j) runSchedule() configerData.configerData().setData("scheduleChanged", "caseflag", "false") else: pass schedule.run_pending()