一   安装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常用的两种简单操作了, 如有疑问, 请留言!!!

最新文章

  1. 编写Windows服务疑问2:探索服务与安装器的关系
  2. EF7 使用 K EF 异常
  3. hosts持续更新
  4. dedecms 模板静态化
  5. .Net简单图片系统-简介
  6. Linux下grep显示前后几行信息
  7. Unix系统编程_cha11.6_线程同步
  8. paper 25 :SVM支持向量机是什么意思?
  9. NHibernate 基础
  10. 淘宝技术发展(Java时代:脱胎换骨)
  11. MySQL定时事件
  12. request的getServletPath(),getContextPath(),getRequestURI(),getRealPath("/")区别
  13. 【转】centos安装vim7.4
  14. linux下的QT打包方法
  15. sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') #改变标准输出的默认编码
  16. MongoDB学习记录(二) - MongoDB的"增查改删"操作之"增"
  17. [daily][mathematica][fcitx] mathematica 无法输入中文的问题
  18. node有哪些坑?
  19. python加密解密算法
  20. packageOfficialDebug和resourceFile does not exist.

热门文章

  1. Re0:在 .NetCore中 EF的基本使用
  2. 【FFMPEG】FFMPEG介绍
  3. JavaScript里的类和继承(转)
  4. 第24课.经典问题解析(1.析构函数的顺序;2.const修饰对象;3.成员函数,成员变量是否属于具体对象)
  5. eNSP使用-不同网段的互联
  6. spark异常篇-关闭程序
  7. Flask 卡住, 无响应问题
  8. C#签名验签帮助类
  9. Antd组件库,利用Menu组件模拟一个简单Tree组件
  10. 作业10:String类