Я работаю над проектом, который может отправлять массовые электронные письма. Я в настоящее время на 100 писем в 1:06 секунд. Я думаю, что это можно сделать быстрее, как за минуту или меньше. У вас есть предложения?
Я уже использовал многопоточность, но, конечно, "GIL".
Я сделал также из многопроцессорных. Вот где я получаю 1:06 секунды, а пул на 1:07 секунды
def sendMail(z,x,c):
startti=datetime.datetime.now()
server.sendmail(z,x,c)
timenow= datetime.datetime.now()
print (timenow-startti).total_seconds()
def multiprocessing_func(x):
cursor.execute(query)
starttime=datetime.datetime.now()
while True:
result=cursor.fetchone()
if result==None:
break
subject=str(result[1])
sendto=str(result[2])
msg=MIMEMultipart('mixed')
msg['from']=mail_sender
msg['to']=sendto
msg['subject']=subject
part_text=MIMEText(html, 'html')
msg.attach(part_text)
msg.attach(file1)
sendMail(msg['from'],msg['to'],msg.as_string())
endtime=datetime.datetime.now()
print'%s'%(endtime-starttime)
if __name__ == '__main__':
processes=[]
for i in range(1):
p=multiprocessing.Process(target=multiprocessing_func, args=(i,))
processes.append(p)
p.start()
for process in processes:
process.join