1主文件:picTime 定时启动任务 2 3#!usr/bin/evn python 4 5#coding=utf-8 #支持中文注释 6from datetime import date, time, datetime, timedelta 7import StrToImageBase64 8import cmdPic 9import redis 10import Fileout 11import time 12 13def work(): 14 strTimes=time.strftime('%Y%m%d%H%M%S',time.localtime(time.time())) 15 print(strTimes) 16 cmdPic.Excute(strTimes) 17 time.sleep(50) 18 Fileout.ReadPic("Sleep 50s") 19 r=redis.Redis(host='192.168.20.153',port=6379) 20 print(strTimes+'_130000000000_11') 21 ccstr=r.get(strTimes+'_130000000000_11') 22 Fileout.ReadPic("Read key"+strTimes+'_130000000000_11') 23 isNones=ccstr 24 if isNones==None: 25 Fileout.ReadPic("Pictrue KeyAndVlaue not Exist") 26 else: 27 if b'picData' in ccstr: 28 StrToImageBase64.str_to_image(ccstr, './image/'+strTimes+'.jpeg') 29 Fileout.ReadPic("Pictrue sussful") 30 elif b'order' in ccstr: 31 Fileout.ReadPic("Pictrue save fail") 32 else: 33 Fileout.ReadPic("fails") 34 35def runTask(func, day=0, hour=0, min=0, second=0): 36 # Init time 37 now = datetime.now() 38 strnow = now.strftime('%Y-%m-%d %H:%M:%S') 39 #print("now:",strnow) 40 Fileout.ReadPic("now:"+strnow) 41 # First next run time 42 period = timedelta(days=day, hours=hour, minutes=min, seconds=second) 43 next_time = now + period 44 strnext_time = next_time.strftime('%Y-%m-%d %H:%M:%S') 45 #print("next run:",strnext_time) 46 Fileout.ReadPic("next run:"+strnext_time) 47 while True: 48 # Get system current time 49 iter_now = datetime.now() 50 iter_now_time = iter_now.strftime('%Y-%m-%d %H:%M:%S') 51 if str(iter_now_time) == str(strnext_time): 52 # Get every start work time 53 #print ("start work: %s" % iter_now_time) 54 Fileout.ReadPic("start work: %s" %iter_now_time) 55 # Call task func 56 func() 57 #print ("task done.") 58 Fileout.ReadPic("task done.") 59 # Get next iteration time 60 iter_time = iter_now + period 61 strnext_time = iter_time.strftime('%Y-%m-%d %H:%M:%S') 62 #print ("next_iter: %s" % strnext_time) 63 Fileout.ReadPic("next_iter: %s" %strnext_time) 64 # Continue next iteration 65 continuework() 66runTask(work,min=2) 67 68 69连接redis 执行命令 cmdPic.py 70#!usr/bin/evn python 71#coding=utf-8 72import redis 73import json 74import base64 75import time 76import Fileout 77def Excute(strTime): 78 #连接 79 r=redis.Redis(host='192.168.20.153',port=6379) 80 #写 81 Fileout.ReadPic(r) 82 data={"order":"11","camera":[{"id":"130000000000","position":["11","12"]}]}; 83 sdata=json.dumps(data) 84 str=r.set('orders_001_'+strTime,sdata) 85 print(str) 86 Fileout.ReadPic('Set key'+'orders_001_'+strTime) 87 temp=r.get('orders_001_'+strTime)#decode()解决Python3输出带b 88 Fileout.ReadPic('Get keyValue'+'orders_001_'+strTime) 89 90 91 92 93 #将读取的字符串转换为图片 StrToImageBase64.py 94#!usr/bin/evn python 95 96 97#coding=utf-8 98#Author DangKai 99import base64 100import json 101#将数据转换为json在转换为相片 102#class Image: 103 # def __init__(self,name,cstr) 104 ##self.name=name 105 #self.cstr=cstr 106 #pass 107def str_to_image(cstr,name): 108 print(cstr) 109 str_to_json=json.loads(cstr) 110 print(str_to_json) 111 data=str_to_json['picData'] 112 #print(data) 113 picData=base64.b64decode(data) 114 picDatas=open(name,'wb') 115 picDatas.write(picData) 116 picDatas.close() 117def image_to_str(ImageName): 118 imageFile=open(ImageName,"rb") 119 str_to_base64=base64.b64encode(imageFile.read()) 120 data=str_to_base64.decode() 121 #print(data) 122 sdata={'picData':data} 123 #in_json=json.dumps(sdata)#转化为json存储 124 #return in_json 125 return sdata
Python 定时任务
Stella981
2021-10-11
1124 0 0
点赞
收藏
评论区
加载中...