zoukankan      html  css  js  c++  java
  • 如何使用django+celery+RabbitMQ实现异步执行

    1)
    安装
    需要安装RabbitMQ、Celery和Django-celery
    Celery和Django-celery的安装直接pip就好

    2)
    修改settings.py
    在INSTALLED_APPS中加入app:
    INSTALLED_APPS = (
    ...
    'djcelery',
    'main', # startapp
    }

    3)
    添加RabbitMQ的配置:
    import djcelery
    djcelery.setup_loader()

    BROKER_URL = 'amqp://guest:guest@localhost:5672/'

    #或者
    #BROKER_HOST = "localhost"
    #BROKER_PORT = 5672
    #BROKER_USER = "guest"
    #BROKER_PASSWORD = "guest"
    #BROKER_VHOST = "/"

    4)
    创建数据库
    $ python manage.py syncdb #default
    $ python manage.py migrate djcelery #for south

    5)
    定义和调用tasks
    在app(main)目录下新建文件tasks.py
    from celery import task

    @task()
    def add(x, y):
    return x + y

    6)
    开启worker:
    $ python manage.py celery worker --loglevel=info
    $ #OR
    $ python manage.py celeryd -l info --settings=settings

    7)
    调用任务:
    $ python manage.py shell
    In [1]: from main.tasks import add

    In [2]: a=add.delay(1,1)

    In [3]: a.ready() #worker未开启
    Out[3]: False

    In [4]: a=add.delay(1,1) #开启worker,重新执行

    In [5]: a.ready()
    Out[5]: True

    In [9]: a.get() #Waits until the task is done and returns the retval.
    Out[9]: 2

    In [10]: a.successful()
    Out[10]: True

    8)运行index:$ python app.py 8000 ,运行celery:$ python manage.py celeryd -l info --settings=settings
  • 相关阅读:
    NET領域模型(1)
    oracle 函數索引(1)
    oracle 動態SQL(1)
    WF事件驱动(5)
    WF事件驱动(3)
    WF事件驱动(4)
    HP LoadRunner 11.00 新鲜尝
    Tomcat配置优化要点
    WebSphere性能诊断与调优
    性能测试工具、监控工具
  • 原文地址:https://www.cnblogs.com/dengshihuang/p/8250969.html
Copyright © 2011-2022 走看看