celery mysql 异步_celery配合rabbitmq任务队列实现任务的异步调度执行[celery redis]
前言:
51cto的文章已經不再補充更新了,另外celery rabbitmq詳細的使用方法請到這里瀏覽.
http://xiaorui.cc/2014/11/16/celery-rabbitmq%E5%AE%9E%E7%8E%B0%E4%BB%BB%E5%8A%A1%E9%98%9F%E5%88%97%E7%9A%84%E5%BC%82%E6%AD%A5%E6%89%A7%E8%A1%8C/
為啥要用celery ?
在我的應用下,可以把他異步到后臺執行,想起來了,把他調到前面。
和rabbitmq又有啥關系?
和rabbitmq的關系只是在于,celery沒有消息存儲功能,他需要介質,比如rabbitmq redis mysql mongodb 都是可以的。有這個可控的東西,你也可以在庫里面搞搞。推薦使用rabbitmq,他的速度和可用性都很高,redis這東西就怕意外,當然你運氣很好,不怕他意外的掛掉,是可以用的。
Celery和RabbitMQ是兩個層面的東西。
Celery是一個分布式的任務隊列。它的基本工作就是管理分配任務到不同的服務器,并且取得結果。至于說服務器之間是如何進行通信的?這個Celery本身不能解決。
所以,RabbitMQ作為一個消息隊列管理工具被引入到和Celery集成,負責處理服務器之間的通信任務。
當然,后來Celery相繼增加了一些對Redis,MongoDB之類的支持。原因是RabbitMQ盡管足夠強大,但對于一些相對簡單的業務環境來說可能太多(復雜)了一些。這樣用戶可以有多一些的選擇。
celery的介紹
Celery(芹菜)是一個異步任務隊列/基于分布式消息傳遞的作業隊列。它側重于實時操作,但對調度支持也很好。
celery用于生產系統每天處理數以百萬計的任務。
celery是用Python編寫的,但該協議可以在任何語言實現。它也可以與其他語言通過webhooks實現。
建議的消息代理RabbitMQ的,但提供有限支持Redis, Beanstalk, MongoDB, CouchDB, ,和數據庫(使用SQLAlchemy的或Django的 ORM) 。
celery是易于集成Django, Pylons and Flask,使用 django-celery, celery-pylons and Flask-Celery 附加包即可。
官方說,他們在用 ~
074432221.jpg
?著作權歸作者所有:來自51CTO博客作者rfyiamcool的原創作品,謝絕轉載,否則將追究法律責任
總結
以上是生活随笔為你收集整理的celery mysql 异步_celery配合rabbitmq任务队列实现任务的异步调度执行[celery redis]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: svn回退到指定版本
- 下一篇: sqlserver 修改表字段长度