celery的简单使用

 

一   安装celery

#首先进行一些简单配置
pip install celery
apt-get install erlang
apt-get install rabbitmq-server

二 开始操作

#开启rabbitmq-server命令如下
service rabbitmq-server start
vi /var/log/rabbitmq/rabbit\@ubuntu.log

  执行上述操作后会显示如下

      

    有些系统显示的是None

  显示没有找到配置文件.需要我们自己创建这个文件

cd /etc/rabbitmq/
vi rabbitmq.config

  编辑内容如下

[{rabbit, [{loopback_users, []}]}].

  这里的意思是开放使用,rabbitmq默认创建的用户guest,密码也是guest,这个用户默认只能是本机访问,localhost或者127.0.0.1,从外部访问需要添加上面的配置。

   保存配置后重启服务:

service rabbitmq-server restart 

  此时就可以从外部访问了,但此时再看log文件,发现内容还是原来的,还是显示没有找到配置文件,可以手动删除这个文件再重启服务,不过这不影响使用

 

rm rabbit@localhost.log 
service rabbitmq-server restart

 

  这时查看log,发现没问题

 

            

  开启管理UI:

rabbitmq-plugins enable rabbitmq_management

  在Windows下打开地址:

      http://192.168.24.179:15672

             用户名密码都是guest    

    

三   利用celery执行异步任务 

  创建tasks.py文件

  写入以下代码

#coding:utf-8
from celery import Celery
import time
app = Celery('tasks',backend='amqp', broker='amqp://guest@127.0.0.1:5672//')
@app.task
def add(x, y):
    print 'hello celery'
    time.sleep(10)
    return x + y

  新建一个终端,启动celery服务

celery -A tasks worker --loglevel=info

      

    执行任务

      

  也可以循环执行add函数来测试同步和异步的特点,例如执行10000次看他们的区别

四   利用celery执行定时任务 

  创建time_task.py文件.主要职责是每隔10秒输出hello,每隔30秒输出world,每周一早上7点半输出Happy Mondays.你也可以改造成根据用户生日定时发送生日贺卡邮件或者每周一备份数据库等功能

 

from celery import Celery
from celery.schedules import crontab

app = Celery()

@app.on_after_configure.connect
def setup_periodic_tasks(sender, **kwargs):
    # Calls test('hello') every 10 seconds.
    sender.add_periodic_task(10.0, test.s('hello'), name='add every 10')

    # Calls test('world') every 30 seconds
    sender.add_periodic_task(30.0, test.s('world'), expires=10)

    # Executes every Monday morning at 7:30 a.m.
    sender.add_periodic_task(
        crontab(hour=7, minute=30, day_of_week=1),
        test.s('Happy Mondays!'),
    )

@app.task
def test(arg):
    print(arg)

 

  新建一个终端  ,  命令如上

 

      

以上就是celery常用的两种简单操作了, 如有疑问, 请留言!!!

 

posted @ 2017-09-19 19:30  领着猫散步的鱼  阅读(718)  评论(1编辑  收藏  举报