我正在尝试并行发送 5 封电子邮件。函数scheduleEmails将 5 个电子邮件地址的列表作为输入。我的代码如下所示:
import multiprocessing
import smtplib
def sendMail(email):
#sends email using smtplib
# returns True in case of success, False in case of failure
def scheduleEmails(emailLst):
"""
emailLst is a list of list of 5 emails
emailLst = [[emailAddr1,emailAddr2,emailAddr3...emailAddr5],
[emailAddr6...emailAddr10],
[emailAddr11... emailAddr[15],...]
"""
FREQUENCY = 5 # no. of emails to be send per second
for i in range(len(emailLst)):
p = multiprocessing.Pool(FREQUENCY)
emails = emailLst[i]
results = p.map(sendEmail,emails)
scheduleEmails(someEmailLst)
该代码运行良好,但一段时间后,它挂起。您能否指出错误或提出更好的方法来实现这一目标?