celery-example
项目地址:celery-example
该项目包含了关于 Celery 的三个 Demo,其中 notify_friends_exp
和 favorite_book_exp
参考文章 利用 Celery 构建 Web 服务的后台任务调度模块,
而 register_module
包含了一个 Web 的注册案例,对比了传统同步的注册与使用Celery任务调度下注册的性能差异。
性能测试
假设用户的注册有以下几个步骤:
- 将账号插入到数据库中
- 向用户发送邮件通知
- 向用户发送欢迎消息
在以前同步的实现中,一次请求必须完整的走完以上三个步骤才能响应给用户,可是用户其实并不需要等待邮件通知和欢迎消息,只需要将账号插入数据库就可以去做他想做的事了。
因此,我们完全可以将这两个步骤拆分出来异步的执行,当第一个步骤完成了就可以将结果响应给用户了,尤其是在后面的步骤十分耗时的情况下,
通过这种方式可以极大的提高系统的吞吐量。异步执行的步骤可以作为消息放入消息队列中,而 Celery 则为我们封装了消息队列(也就是一个Broker),
我们只需要使用 Celery 提供的API就可以很轻松的实现生产者和消费者了。