python学习—Day48—celery多实例与定时任务

来源:互联网 发布:历年网络作家富豪榜 编辑:程序博客网 时间:2024/06/06 07:17

celery多实例代码:

redis_1.py

from celery import Celeryimport 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.taskdef add(x, y):    print "------>"    time.sleep(5)    print "<--------------"    return x + yif __name__ == "__main__":    app.start()

redis_2.py

from celery import Celeryimport 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.taskdef add_2(x, y):    print "=======>"    time.sleep(5)    print "<================="    return x + yif __name__ == "__main__":    app.start()

验证测试;

from celery import groupfrom 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 retprint "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 ":", retprint "end redis_2 -----------------------------------"


返回值:

3711end redis_1 -----------------------------------: 3: 7: 11end redis_2 -----------------------------------

对于异步队列还需要时间理解。