celery多实例代码:
redis_1.py
from celery import Celery import time #app = Celery('test_redis', backend='amqp', broker='redis://100.69.201.116:7000') app = Celery('test_redis', backend='redis', broker='redis://100.69.201.116:7000') @app.task def add(x, y): print "------>" time.sleep(5) print "<--------------" return x + y if __name__ == "__main__": app.start()
redis_2.py
from celery import Celery import time #app = Celery('test_redis', backend='amqp', broker='redis://100.69.201.116:7000') app = Celery('test_redis_2', backend='redis', broker='redis://100.69.201.116:7001') @app.task def add_2(x, y): print "=======>" time.sleep(5) print "<=================" return x + y if __name__ == "__main__": app.start()
验证测试;
from celery import group from test_redis import * from test_redis_2 import * ll = [(1,2), (3,4), (5,6)] g = group(add.s(key[0], key[1]) for key in ll).apply_async() for ret in g.get(): print ret print "end redis_1 -----------------------------------" ll = [(1,2), (3,4), (5,6)] g = group(add_2.s(key[0], key[1]) for key in ll).apply_async() for ret in g.get(): print ":", ret print "end redis_2 -----------------------------------"
3 7 11 end redis_1 ----------------------------------- : 3 : 7 : 11 end redis_2 -----------------------------------
对于异步队列还需要时间理解。