【发布时间】:2013-12-21 05:19:07
【问题描述】:
从这个question出发,我有这个任务:
@task()
def create_user(data):
try:
User.objects.get(username=data['username'])
return 'Username already exists'
except:
user = User.objects.create_user(username=data['username'], email=None, password=data['password']
)
user.save()
profile = UserProfile()
profile.user = user
profile.token = generate_token()
profile.save()
return profile.token
我理解 Celery 工作的方式是,假设有很多请求,这个任务可以放在队列中并在一段时间后执行。
让我们假设一个移动应用正在与这个服务器通信。用户将用户名和密码的组合发送到服务器进行注册。服务器只有在处理完任务后才会返回令牌。如果没有令牌,客户就无法登录。所以我必须等到任务处理完毕才能发送令牌。所以一切都变成了异步处理。那么Celery是如何解决这个问题的呢?
【问题讨论】:
标签: python django asynchronous celery scalability