从今天开始阿语将更新美多商场实战笔记,也就说从今天开始,下面的全部都是实战,喜欢的可以关注一下,一起学习python,有的笔记比较短就一篇文章发了2节笔记,一定要认真看
生产者消费者设计模式
思考:
下面两行代码存在什么问题?
问题:
我们的代码是自上而下同步执行的。
发送短信是耗时的操作。如果短信被阻塞住,用户响应将会延迟。
响应延迟会造成用户界面的倒计时延迟。
解决:
异步发送短信
发送短信和响应分开执行,将
发送短信
从主业务中解耦
出来。
思考:
如何将
发送短信
从主业务中解耦
出来。
生产者消费者设计模式介绍
为了将
发送短信
从主业务中解耦
出来,我们引入生产者消费者设计模式
。它是最常用的解耦方式之一,寻找中间人(broker)搭桥,保证两个业务没有直接关联。
总结:
生产者生成消息,缓存到消息队列中,消费者读取消息队列中的消息并执行。
由美多商城生成发送短信消息,缓存到消息队列中,消费者读取消息队列中的发送短信消息并执行。
验证码所有代码:
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "meiduo_mall.settings.dev")
try:
from django.core.management import execute_from_command_line
except ImportError:
# The above import may fail for some other reason. Ensure that the
# issue is really that Django is missing to avoid masking other
# exceptions on Python 2.
try:
import django
except ImportError:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
)
raise
execute_from_command_line(sys.argv)