我有一个用例,我需要发送16000多个用户的独特邮件。要做到这一点,我使用mandrill api(djrill)。为了提高效率和优化,我尝试使用send_mass_mail功能和芹菜。
在这样做的同时,我正在检查芹菜日志,发现对于每封电子邮件,芹菜工作者正在创建一个新的http连接。
@shared_task
def test_email_mass(merge_vars):
messages = []
if DEBUG:
for k,v in merge_vars.iteritems():
message = []
print v['content']
message.append(title)
message.append(v['content'])
message.append('foo@too.com')
message.append([k])
messages.append(tuple(message))
send_mass_mail(tuple(messages), fail_silently=False)
这将严重影响我们的网络并消耗大量带宽。
这是我的代码来做同样的事情
connection = get_connection()
if DEBUG:
for k,v in merge_vars.iteritems():
message = []
msg = EmailMessage(from_email="soo@too.com", subject=title)
msg.template_name = "standard"
msg.to = [k]
msg.from_name = from_name
messages.append(msg)
connection.send_messages(messages)
connection.close()
我原以为上面的代码只会创建一个http连接。
编辑: 我也试过以下。
std::next_permutation
它仍然表明它每次都会创建一个新的http连接。