他是在python中对函数执行异步调用的正确方法吗?
发起人代码
pool = Pool(processes=4)
pool.apply_async(send_email, ['CONFIRM', email, auth_token, password, "", first_name])
功能
def send_email(flag, email, auth_token='', password='', shared_by='', name=''):
try :
send_mail('Greetings!', 'Hi '+str(name)+'\nThank you for checking us out!'
'Please click on the link below to activate your subscription.\n' + confirmation_link +
'\npassword : ' + password, 'someone@domain.com', [email],
fail_silently=False)
except SMTPException as e:
print e
我是否阅读过在线文档?
是的,我有,但严重的是没有多大帮助。所以我来这里寻求帮助。
答案 0 :(得分:1)
如果你想要在Django中集成异步的东西,你需要一个异步任务队列/作业。如果你必须发送大量邮件,它将阻止Django流量。
任务队列管理必须在外部执行的后台工作 通常的HTTP请求 - 响应周期。
任务是异步处理的,因为它们未启动 通过HTTP请求或因为它们是长期运行的作业 大大降低了HTTP响应的性能。
有几个任务队列系统可以很好地与Django集成,如 Celery (docs)。我建议您阅读本文以了解并选择正确的解决方案:Full Stack Python - Task queues