1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# -*- coding:utf-8 -*-
# @Time : 2019/10/8 14:47
# @Author : litao
import redis,time,json,datetime,sys
from maintenance.func_send_email_with_file import send_file_email
rds = redis.StrictRedis(host='172.16.40.164', port=6379, db=19,decode_responses=True, password='ReDis!GmTx*0aN12')
def write_email_task_to_redis(task_name=None,file_path=None, data_str=None, email_group=[],
email_msg_body_str=None,
title_str=None,
cc_group=[],sender=None):
now = int(datetime.datetime.now().timestamp()*1e3)
mapping_dic = {
"taskname":task_name,
"file_path":file_path,
"data_str":data_str,
"email_group":email_group,
"email_msg_body_str":email_msg_body_str,
"title_str":title_str,
"cc_group":cc_group,
"sender":sender
}
for k in mapping_dic:
mapping_dic[k]=json.dumps(mapping_dic[k])
rds.hmset(task_name+"%s_email" % now,mapping_dic)
rds.rpush("email_task",task_name+"%s_email" %now)
return True
def send_email_task_form_redis():
task_name = rds.lpop("email_task")
dic = rds.hgetall(task_name)
send_file_email(
json.loads(dic.get("file_path")),
json.loads(dic.get("data_str")),
email_group=json.loads(dic.get("email_group")),
email_msg_body_str=json.loads(dic.get("email_msg_body_str")),
title_str=json.loads(dic.get("title_str")),
cc_group=json.loads(dic.get("cc_group")),
sender=json.loads(dic.get("sender")),
)
rds.delete(task_name)
print("task " + task_name + "done")
return True
if __name__ == "__main__":
# write_email_task_to_redis(task_name="1234",file_path=None,data_str="data_str",email_group=["litao@csm.com.cn"],email_msg_body_str="email_msg_body_str",title_str="title_str",sender="litao@csm.com.cn")
now = datetime.datetime.now()
while True and now.hour >= 5:
try:
if rds.llen("email_task") != 0:
send_email_task_form_redis()
else:
print("wait for 5s")
now = datetime.datetime.now()
time.sleep(5)
except:
continue
sys.exit(0)