celery的配置和使用
来源:互联网 发布:理想 知乎 编辑:程序博客网 时间:2024/06/15 00:13
环境:ubuntu环境
下载必要的包:
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
找到config file(s)这一行,默认应该是个None,修改为/etc/rabbitmq/rabbitmq.config
显示没有找到配置文件.需要我们自己创建这个文件
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
service rabbitmq-server restart
在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的配置和使用
- Celery的安装和使用
- Flask和Celery的使用
- Celery、flower和celery-redis 的安装与使用
- celery配置使用
- celery-redis的安装和使用
- celery+Rabbit MQ的安装和使用
- Celery(一)---------使用Celery的第一步
- celery、rabbitmq的使用
- Python-Celery的使用
- tornado+celery的简单使用
- Celery(二)-----------------使用Celery的第二步
- 使用Celery
- 使用Celery
- 关于django celery配置的backend
- celery常用配置总结 【celery配置worker数和单个worker最多执行任务数】
- django 、celery 中logging的使用
- celery系列 一 celery 相关配置
- pylint代码优化经历
- 怎么用Mathematica研究12阶群?
- python 简易学习教程 1
- 使用ArrayList集合,对其添加100个不同的元素:
- HTML——<script>标签
- celery的配置和使用
- 016大数据课程知识点小结
- 值得学习的Qt博客(看博客、学语言、下载资料要有个度,否则时间都耗掉了,还是什么都干不了)
- 1008. 数组元素循环右移问题 (20)
- 论文笔记 [1] Deep Image Prior
- HTML——<body>标签
- Zookeeper介绍和使用
- 论JAVA语言的优缺点
- HackerRank难题记录