一.问题抛出:
在网站开发的时候,也许会碰到这样的需求:用户在我们的网站填写注册信息,我们发给用户一封注册激活邮件到用户邮箱,如果由于各种原因,这封邮件发送时间较长,那么用户会等待很久,造成不好的用户体验。
二.问题解决:
我们将耗时任务放到后台异步执行。不会影响用户其他操作。除了注册功能外,比如上传,图形处理等耗时的任务,都可以按照这种思路来解决。如何实现异步执行任务呢?celery粉墨登场,给你完美体验!
三.celery介绍:
celery是一个功能完备即插即用的任务队列。然而,它的使用还非常简答。今天是我先分享给大家一些关于celery的简单了解。celery适用异步处理问题,当发送邮件、或者文件上传, 图像处理等等一些比较耗时的操作,我们可将其异步执行,这样用户不需要等待很久,提高用户体验。
celery的特点是:
简单,易于使用和维护,有丰富的文档;
高效,单个celery进程每分钟可以处理数百万个任务;
灵活,celery中几乎每个部分都可以自定义扩展。
四.TaskQueue(任务队列):
任务队列是一种跨线程,跨机器工作的一种机制。任务队列中包含称做任务的工作单元。有专门的工作进程持续不断的监视任务队列,并从中获得新的任务并处理。
celery通过消息进行通信,通常使用一个叫做Broker(中间人)来协client(任务的发出者)和worker(任务的处理者). clients发出消息到队列中,broker将队列中的信息派发给wo